我试图遍历两个不同类型的ArrayList字段。虽然我可以为每种类型编写方法,但是有没有办法仅用一个方法来迭代它们呢?我似乎不太清楚是否可以将字段作为方法参数传递。在下面的代码中,方法iteratePhrase()应该打印出两个ArrayLists中的所有元素。在其中,[...]表示numbersletters

import java.util.ArrayList;
import java.util.List;

public class Phrase {
    private List<Number> numbers;
    private List<Letter> letters;

    public Phrase() {
        numbers;
        letters;
    }

    public void iteratePhrase() {
        for (int i=0; i<[...].size(); i++)
            System.out.println([...].get(i));
    }
}

最佳答案

您可以将iteratePhrase设为通用,即使其成为List<T>;喜欢

public <T> void iteratePhrase(List<T> al) {
    for (int i = 0; i < al.size(); i++) {
        System.out.println(al.get(i));
    }
}


您还可以使用for-each循环,例如

for (T t : al) {
    System.out.println(t);
}


无论哪种情况,您都可以致电

iteratePhrase(numbers);




iteratePhrase(letters);

09-05 08:20