获取集合中元素的方法总结
集合是我们在平时应用中最多的一种数据容器,现对集合中的元素获取方法做一下总结:
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 }