我有一个类似的问题,如下所述:
不同之处在于,在我的班级中,我的元素是 ArrayLists(所有 ArrayLists 都包含相同类型的元素),而不是原始类型。
我想知道是否可以迭代元素并在这个循环中迭代声明的 ArrayList?
我有一个类似的问题,如下所述:
不同之处在于,在我的班级中,我的元素是 ArrayLists(所有 ArrayLists 都包含相同类型的元素),而不是原始类型。
我想知道是否可以迭代元素并在这个循环中迭代声明的 ArrayList?
您可以直接迭代ArrayList
s,因此您的示例与您发布的链接不同,它们需要使用反射来迭代它们,因为它们尚未分组到容器中:
class MyClass {
public static ArrayList<A> myList = new ArrayList<>(
Arrays.asList(new A[]{ A1, A2, ..., AN);
public static void main(String[] args) {
// iterate over your list
for(A a : myList) {
// do something with A object
}
}
}
有几种方法可以迭代ArrayList<Type>
一个 refrence 类型我发现以下方法很有用,你可以自己尝试一下。
A. 最常见/最简单的方法是使用计数器列出其元素
ArrayList<Person> persons = new ArrayList<Person>(); //Add some person objects to the list for(int i=0;i<persons.size();i++){ System.out.println(persons.get(i)); }
B. 使用迭代器
for (Iterator i = persons.iterator(); i.hasNext();) { Object listElement = i.next(); System.out.println(listElement); }
C. For/in 循环
for (Person listElement : persons) { System.out.println(listElement); }
您可以使用这 3 种方法中的任何一种来完成工作,但建议使用最后一种方法,即 For/in 循环,因为您不必使用计数器(通常称为i
or count
)或Iterator