Iterator存在的意义
Iterator的目的是实现数据的遍历,不是搜索。
■网友
我感觉 Iterator 更多的时候是一个接口作用。在实际编程中,确实有一些迭代的逻辑并不是直截了当的,需要编程者详细给出一个迭代的逻辑。有这个一个接口在的话,调用者就可以不去关心迭代是如何实现的了。所以即使支持自行搜索的数据结构也加一个迭代器的话,可以有效的解耦。
■网友
除了上述知友说的原因外,还想补充一点:有时候iterator会大幅提高遍历的性能。例如:LinkedList1. 如果使用iterator,会从一个节点直接通过next指针获得下一个节点。所以遍历整个列表数据时间复杂度为O(N);2. 如果使用普通遍历方法,每遍历一个节点就会调用get(idx)方法,get方法会遍历整个列表以找到idx对应的数据(严格的说在java中是遍历半个列表查找对应数据)。所以遍历整个列表数据时间复杂度是O(N^2)。
■网友
迭代器让你游走于聚合中的每个元素而不必知道他的具体实现。
推荐阅读
- 5.1声道片源对于没有5.1硬件系统的用户来说有意义吗
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
- 环球车讯网|你发现了吗?现在的手动挡汽车越来越少了
- 豪车|玛莎拉蒂推出限量版新车,噱头大于实际意义
- 你咋看互联网企业的加班问题加班这么多,就算拿的钱再多,没有了生活,又有啥意义呢
- 一个会技术的男生在假期可以做些啥有意义的事情
- 玩车教授|一个牌照拍出251万!现在的人都开不起这车了
- 咋看待现在的互联网论坛
- 趣头条|【15周年】 你有我没有?不存在的好不啦
- 真相|为什么一定要考985/211? 残酷的真相让你明白高考的意义..
