据我所知,ListIterator为列表提供了比Iterator更多的功能。如果是这样,为什么要使用Iterator?它也有优化或性能因素吗?
答案 0 :(得分:0)
通常,您的代码知道的代码和数据结构的其他部分越少越好。原因很简单:这简化了修改。
事实上,Collection
比Iterator
更强大,List
比Collection
更强大。
但是Iterator
可以从很多数据结构中获得,所以如果你使用的是来自(例如)list的Iterator,你可以更改代码并从(例如)数据库获取迭代器而不用更改与迭代器一起使用的代码。
答案 1 :(得分:0)
使用ListIterator表示按特定顺序迭代的要求。使用迭代器表示该顺序无关紧要。
通常我认为使用迭代器会使代码难以阅读。我不知道你的用例,但在大多数情况下,使用增强的for循环或类似Java 8流的功能方法是有意义的。
答案 2 :(得分:0)
如果您需要ListIterator
的功能,那么您可以使用它。同时,您限制自己在特定地点List
处进行操作。
现在,如果您实施了一些基于List
的真正操作,那么您实际上希望仅在List
上运行,所以也许这对您没有任何限制。
但是,如果你真的不需要ListIterator
的特殊功能,但Iterator
就足够了,那么更喜欢使用普通Iterator
;这使您不仅可以在List
上操作,还可以在任何实现Iterable
的数据结构上操作,包括所有类型的Collection
。这使您的代码更通用,更灵活。