0

我有一个类似的问题,如下所述:

在java中迭代静态int值

不同之处在于,在我的班级中,我的元素是 ArrayLists(所有 ArrayLists 都包含相同类型的元素),而不是原始类型。

我想知道是否可以迭代元素并在这个循环中迭代声明的 ArrayList?

4

2 回答 2

2

您可以直接迭代ArrayLists,因此您的示例与您发布的链接不同,它们需要使用反射来迭代它们,因为它们尚未分组到容器中:

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
       }
   }
}
于 2012-12-18T15:54:59.007 回答
0

有几种方法可以迭代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 循环,因为您不必使用计数器(通常称为ior count)或Iterator

于 2012-12-18T18:58:48.593 回答