我正在尝试迭代两个不同类型的 ArrayList 字段。虽然我可以为每种类型编写方法,但有没有一种方法可以仅使用单个方法来迭代它们?我似乎不太清楚是否可以将字段作为方法参数传递。在下面的代码中,方法 iteratePhrase()
应该打印任一 ArrayList 中的所有元素。其中,[...] 表示数字
或字母
。
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);
关于java - 如何使用单个方法迭代不同对象的 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55884268/