我遇到了类似的问题,如下所述:
iterate static int values in java
不同之处在于,在我的类中,我有元素是ArrayLists(所有ArrayLists都包含相同类型的元素),而不是基本类型。
我想知道是否可以迭代元素并在此循环中迭代声明的ArrayList?
答案 0 :(得分:1)
您可以直接迭代ArrayList
,因此您的示例与您发布的链接不同,他们需要使用反射来迭代它们,因为它们尚未分组到容器中:
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
}
}
}
答案 1 :(得分:0)
有几种方法可以迭代ArrayList<Type>
引用类型
我发现以下几种方法很有用,你可以尝试自己。
一个。通过使用计数器,最常见/最简单的方法 列出其元素
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); }
℃。一个For / in循环
for (Person listElement : persons) { System.out.println(listElement); }
您可以使用3种方法中的任何一种来完成工作,
但建议使用最后一个方法,即For / in循环
因为您不必使用计数器(通常称为i
或count
)或Iterator