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

时间:2016-02-15 10:09:01

标签: java optimization iterator listiterator

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

3 个答案:

答案 0 :(得分:0)

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

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

但是Iterator可以从很多数据结构中获得,所以如果你使用的是来自(例如)list的Iterator,你可以更改代码并从(例如)数据库获取迭代器而不用更改与迭代器一起使用的代码。

答案 1 :(得分:0)

使用ListIterator表示按特定顺序迭代的要求。使用迭代器表示该顺序无关紧要。

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

答案 2 :(得分:0)

如果您需要ListIterator的功能,那么您可以使用它。同时,您限制自己在特定地点List处进行操作。

现在,如果您实施了一些基于List的真正操作,那么您实际上希望仅在List上运行,所以也许这对您没有任何限制。

但是,如果你真的不需要ListIterator的特殊功能,但Iterator就足够了,那么更喜欢使用普通Iterator;这使您不仅可以在List上操作,还可以在任何实现Iterable的数据结构上操作,包括所有类型的Collection。这使您的代码更通用,更灵活。