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