集合是我們在平時應用中最多的一種數據容器,現對集合中的元素獲取方法做一下總結:
1. 使用for循環遍歷加上集合的get()方法獲取
1 ArrayList list = new ArrayList(); 2 list.add(1); 3 list.add(2); 4 list.add(3); 5 for (int i = 0; i < list.size(); i++) { 6 System.out.println(list.get(i)); 7 }
2. 使用迭代器Iterator正序遍歷元素
1 ArrayList list = new ArrayList(); 2 list.add(1); 3 list.add(2); 4 list.add(3); 5 Iterator it = list.iterator(); 6 while(it.hasNext()){ 7 System.out.println(it.next()); 8 }
3. 使用迭代器listIterator逆序遍歷元素
1 ArrayList list = new ArrayList(); 2 list.add(1); 3 list.add(2); 4 list.add(3); 5 ListIterator it = list.listIterator(); 6 while(it.hasPrevious()){ 7 System.out.println(it.previous()); 8 }
4. 使用增強for循環來輸出元素(增強for循環是jdk5的新特性)
1 ArrayList list = new ArrayList(); 2 list.add(1); 3 list.add(2); 4 list.add(3); 5 for (Object obj:list) { 6 System.out.println(obj); 7 }
總結:當需要index索引值時,使用方法1,不使用索引值時使用方法4比方法2、3好,因為不用建立迭代器;
list的iterator方法,從語法上看返回的是接口類型,但查看源代碼可以看到它聲明了一個私有化的類Itr(該類實現了接口iterator),iterator方法返回的是接口的實現類對象。
1 public Iterator<E> iterator() { 2 return new Itr(); 3 } 4 5 private class Itr implements Iterator<E> { 6 7 }
