itertor即枚举器,枚举器是Java在后台自动排序好,比纯粹的for循环要快,因为如果用 for循环,也需要将List中的对象依次取出,这样对内存的调用是随机的,不如Iterator。
ArrayList list = new ArrayList();
list.add("Monday");
list.add("Tuesdag");
list.add("Wednesday");
list.add("Thursday");
list.add("Friday");
list.add("Saturday");
list.add("Sunday");
Iterator iterator = null;
//Example 1:
iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
看老大的代码需要取list里面每个元素的时候,都是 Iterator it = list.iterator(); while (it.hasNext()) { personnelID= (String) it.next(); } 这样比我直接写for(int i=0;i
如果List为ArrayList时,这两种方式遍历差别就不大! 如果是LinkedList,反而推荐使用for! 使用 Iterator 的好处在于可以使用相同方式去遍历集合(List 是有序集合)中元素,而不用考虑集合类的内部实现(只要它实现了 java.lang.Iterable 接口)。 用iterator迭代属于面向对象编程。更加符合JAVA本身。 LinkedList,是以链表为基础实现,链表便于顺序访问。在操作的时候,查慢改快。ArrayList,顾名思义,以数组方式实现,便与随机访问, 查快改慢。foreach内部实现原理也是迭代,但不方便单个数据的修改。