繁体   English   中英

对ArrayList使用Iterator而不是ListIterator有什么好处?

[英]What is the benefit of using Iterator instead of ListIterator for ArrayList?

据我了解,ListIterator提供了比Iterator列表更多的功能。 如果是这样,为什么还要使用Iterator? 是否还有优化或性能因素?

通常,您的代码对代码和数据结构的其他部分了解得越少越好。 原因很简单:这简化了修改。

实际上, CollectionIterator更强大, ListCollection更强大。

但是Iterator可以从许多数据结构中获取,因此,如果您使用的是从(例如)列表中获取的Iterator,则可以更改代码并从(例如)数据库中获取迭代器,而无需更改与Iterator一起使用的代码。

使用ListIterator表示以特定顺序进行迭代的要求。 使用Iterator表示该顺序无关紧要。

通常,我认为使用迭代器会使代码难以阅读。 我不知道您的用例,但是在大多数情况下,使用增强的for循环或Java 8流之类的功能方法是有意义的。

如果您需要ListIterator功能,则可以使用它。 同时,您限制自己只能在该特定位置对List进行操作。

现在,如果您实现了一些真正的基于List的操作,则实际上您只想List进行操作,因此这对您没有限制。

但是,如果你并不真正需要的特殊funtionality ListIterator而是一个Iterator就足够了,那么喜欢用普通Iterator ; 这使您不仅可以对List进行操作,而且还可以对实现Iterable任何数据结构进行操作,包括各种Collection 这使您的代码更通用,使用更灵活。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM