社区
Java
帖子详情
java中为什么要用迭代器Iterator
要薅秃了
2019-09-07 08:52:32
Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。遍历容器中的每个对象而不用考虑容器中对象的个数,而且保护数据不显示的表现出来。
...全文
704
7
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
是赵敢敢啊
2021-05-13
for循环的时候不能使用remove方法, 会导致报错CME并发修改异常,但是使用迭代器的remove就不会
打赏
举报
回复
赞
番茄chao鸡蛋
2021-05-12
引用 4 楼 柔风染千里 的回复:
引用 3 楼 番茄chao鸡蛋 的回复:
如果集合长度变化呢?这个时候就要用迭代器了
不知道有个东西叫size么?
每次删元素 遍历的时候长度在变 对应下边的元素也可能发能变化了
打赏
举报
回复
赞
=PNZ=BeijingL
2021-04-28
使用for 循环语句的优势在于更加简洁,更不容易出错,不必关心下标的起始值和终止值。最大的不同之处就在于remove()方法上。
效率上的各有有事
采用ArrayList对随机访问比较快,而for循环中的get()方法,采用的即是随机访问的方法,因此在ArrayList里,for循环较快
采用LinkedList则是顺序访问比较快,iterator中的next()方法,采用的即是顺序访问的方法,因此在LinkedList里,使用iterator较快
从数据结构角度分析
for循环适合访问顺序结构,可以根据下标快速获取指定元素.而Iterator 适合访问链式结构,因为迭代器是通过next()和Pre()来定位的.可以访问没有顺序的集合.
使用 Iterator 的好处在于可以使用相同方式去遍历集合中元素,而不用考虑集合类的内部实现(只要它实现了 java.lang.Iterable 接口),如果使用 Iterator 来遍历集合中元素,一旦不再使用 List 转而使用 Set 来组织数据,那遍历元素的代码不用做任何修改,如果使用 for 来遍历,那所有遍历此集合的算法都得做相应调整,因为List有序,Set无序,结构不同,他们的访问算法也不一样.
打赏
举报
回复
1
柔风染千里
2021-04-26
引用 3 楼 番茄chao鸡蛋 的回复:
如果集合长度变化呢?这个时候就要用迭代器了
不知道有个东西叫size么?
打赏
举报
回复
赞
番茄chao鸡蛋
2019-09-07
如果集合长度变化呢?这个时候就要用迭代器了
打赏
举报
回复
赞
zxf1234556
2019-09-07
感谢分享…………
打赏
举报
回复
赞
cwmlow
2019-09-07
你这问题跟我这回答差不多 我不管 for循环天下第一
打赏
举报
回复
赞
相关推荐
Java
集合框架
迭代
器
Iterator
实现原理解析
主
要
介绍了
Java
集合框架
迭代
器
Iterator
实现原理解析,文
中
通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
要
的朋友可以参考下
Java
中
迭代
器
Iterator
的使
用
解析
Java
采
用
了
迭代
器
来为各种容
器
提供了公共的操作接口,下面通过本文给大家分享
Java
中
迭代
器
Iterator
的使
用
解析,需
要
的朋友参考下吧
java
集合
迭代
器
Iterator
中
的remove陷阱
主
要
介绍了
java
集合
迭代
器
Iterator
中
的remove陷阱,需
要
的朋友可以参考下
详解
Java
中
的
迭代
迭代
器
Iterator
与枚举
器
Enumeration
Iterator
与Enumeration分别是实现
迭代
器
和枚举
器
类的接口,下面就带大家来详解
Java
中
的
迭代
迭代
器
Iterator
与枚举
器
Enumeration,以及它们之间的区别.
Java
使
用
Iterator
迭代
器
遍历集合数据的方法小结
主
要
介绍了
Java
使
用
Iterator
迭代
器
遍历集合数据的方法,结合实例形式分析了
java
迭代
器
进行集合数据遍历的常见操作技巧,需
要
的朋友可以参考下
发帖
Java
微信扫一扫
点击复制链接
分享社区
下载分享明细
4.9w+
社区成员
8.5w+
社区内容
Java相关技术讨论
社区管理员
加入社区
帖子事件
创建了帖子
2019-09-07 08:52
社区公告
暂无公告