遍历list元素,用iterator() ,再while(hasNext()),next()有什么好处吗
看老大的代码需要取list里面每个元素的时候,都是
Iterator it = list.iterator();
while (it.hasNext()) {
personnelID= (String) it.next();
}
这样比我直接写for(int i=0;i<list.size();i++){
personnelId=(String)list.get(i);
}
有什么优点吗?
------解决方案-------------------- itertor即枚举器,枚举器是Java在后台自动排序好,比纯粹的for循环要快,因为如果用 for循环,也需要将List中的对象依次取出,这样对内存的调用是随机的,不如Iterator。
------解决方案-------------------- 探讨 引用: itertor即枚举器,枚举器是Java在后台自动排序好,比纯粹的for循环要快,因为如果用 for循环,也需要将List中的对象依次取出,这样对内存的调用是随机的,不如Iterator。 真的?
------解决方案-------------------- 引用楼主 crowgns 的帖子: 看老大的代码需要取list里面每个元素的时候,都是 Iterator it = list.iterator(); while (it.hasNext()) { personnelID= (String) it.next(); } 这样比我直接写for(int i=0;i <list.size();i++){ personnelId=(String)list.get(i); } 有什么优点吗?
------解决方案-------------------- 探讨 引用: 就是arrayList,所以我可以继续我的for了? 还是建议你使用iterator! 原因,我说了,然后楼上也有兄弟补充了! 有兴趣,你可以看看jvm相关的!
------解决方案--------------------
帽子太强大了。。
------解决方案-------------------- 用iterator迭代属于面向对象编程。更加符合JAVA本身。
另外学过数据结构的都应该了解LinkedList,是以链表为基础实现,链表便于顺序访问。在操作的时候,查快改慢。
ArrayList,顾名思义,以数组方式实现,便与随机访问,查慢改快。
foreach内部实现原理也是迭代,但不方便单个数据的修改。
------------
c,c++,数据结构没及格学生留。
------解决方案-------------------- 最好的做法
List <String> list = new ArrayList <String>();
for (String s:list) {
System.out.println(s);
}
Iterator it = list.iterator(); 这样的用法一般在jdk 1.5以前使用。