在java中迭代声明的arraylists

时间:2012-12-18 15:42:46

标签: java reflection loops

我遇到了类似的问题,如下所述:

iterate static int values in java

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

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

2 个答案:

答案 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循环 因为您不必使用计数器(通常称为icount)或Iterator