概述
一般来讲,记录的存储方式有两种:一种是顺序存储,另一种是链接存储。对于顺序存储的记录可以根据其下标找到对应的记录,而链接存储(拿单链表为例)则必须找到其前一个记录的位置才能够找到本记录。所以for循环便于访问顺序存储的记录,比如数组等,而迭代器则更适用于链接存储的记录,虽然Java中有些底层通过链接存储原理实现的集合也可以通过下标获取指定的记录,但是其每次都必须从链表头开始查找记录,这样会影响查找的效率。
所以,for适用于循环底层以数组为数据结构的数据,例如ArrayList,数组;而iterator 用于循环底层以链表为数据结构的数据,例如 HashSet, LinkedList;
另外,iterator对于集合才能用,而for只要是循环都可用(集合、数组)。从对集合操作方面比较,for(Object item:list)等于for (Iterator iterator )。for(Iterator it = c.iterator(); it.hasNext(); ) {Object o = it.next(); // 对o的操作...} 在JDK1.5中,还对上面的代码在语法上作了简化: for(Type t : c) {// 对t的操作...}
最后
以上就是大力蜜粉为你收集整理的Java中for与Iterator的比较的全部内容,希望文章能够帮你解决Java中for与Iterator的比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复