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