我是靠谱客的博主 烂漫板栗,最近开发中收集的这篇文章主要介绍Java迭代器 & for循环的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、Iterator接口:

Iterator接口包含三个方法:hasNext,next,remove
在这里插入图片描述

Iterator常用于对集合进行 一边遍历一边修改 的操作

注意:当Iterator迭代访问Collection集合中元素时,Collection的元素不能改变(多个线程的修改),只有通过Iterator的remove()方法删除上一次next()方法返回集合才可以。

2、迭代器和for循环的效率比较

for循环调用get()方法,是随机访问;

iterator调用next()方法,是顺序访问;

举例说明:
若使用ArrayList,对随机访问比较快,因此适合用for循环较快;
若使用LinkedList,对顺序访问比较快,因此适合用iterator迭代访问;

1)从数据结构角度分析,for循环适合访问顺序结构,可以根据下标快速获取指定元素.而Iterator 适合访问链式结构,因为迭代器是通过next()和Pre()来定位的.可以访问没有顺序的集合.

2)而使用 Iterator 的好处在于可以使用相同方式去遍历集合中元素,不用考虑集合类的内部实现(只要它实现了 java.lang.Iterable 接口)。如果使用 Iterator 来遍历集合中元素,一旦不再使用 List 转而使用 Set 来组织数据,那遍历元素的代码不用做任何修改;如果使用 for 来遍历,那所有遍历此集合的算法都得做相应调整,因为List有序,Set无序,结构不同,他们的访问算法也不一样.

3)用for-each处理集合中的每个元素而不用考虑集合定下标,就是为了让用Iterator简单。但是删除的时候,区别就是在remove,循环中调用集合remove会导致原集合变化导致错误,而应该用迭代器的remove方法。

原文链接:https://blog.csdn.net/Jae_Wang/article/details/80526216

3、遍历ArrayList & LinkedList

实验证明,遍历一个ArrayList 和 一个LinkedList,ArrayList 的遍历速度更快,可能因为底层实现是数组。

最后

以上就是烂漫板栗为你收集整理的Java迭代器 & for循环的区别的全部内容,希望文章能够帮你解决Java迭代器 & for循环的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部