gpt4 book ai didi

java - 为什么迭代器仍然存在于java中

转载 作者:行者123 更新时间:2023-11-29 09:35:12 25 4
gpt4 key购买 nike

据我所知,Iterator 和 ListIterator 之间的主要区别是

迭代器:使您能够仅向前循环遍历集合,以获取或删除元素

ListIterator :它扩展了Iterator,允许双向遍历list和修改元素

如果 ListIterator 比 Iterator 更强大,那么 sun java 开发人员应该只提供 ListIterator 的实现并弃用迭代器。为什么 Iterator 仍然存在于 java 中?使用 Iterator 比使用 ListIterator 有什么优势吗?

最佳答案

这是因为不是所有的集合都支持前向和后向迭代。 ListIterators 专门用于具有列表语义的集合,即它们定义了对元素的排序。某些集合类型(例如 Sets)定义其元素的顺序,因此 ListIterator 对它们没有意义。

当迭代器实现需要保持足够的状态以支持前向和后向迭代以及就地修改时,也会产生额外的开销。通过同时支持 IteratorListIterator ,可以在需要时使用轻量级的 Iterator 实现,而使用较重的 ListIterator 适用于需要额外功能的情况。

关于java - 为什么迭代器仍然存在于java中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6659840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com