简单说说 Iterator 和 ListIterator 的区别?

xiaoxiao2021-02-28  12

区别主要如下。

ListIterator 有 add() 方法,可以向 List 中添加对象,而 Iterator 不能。

ListIterator 和 Iterator 都有 hasNext() 和 next() 方法,可以实现顺序向后遍历,但是 ListIterator 有 hasPrevious() 和 previous() 方法,可以实现逆向(顺序向前)遍历,Iterator 就不可以。

ListIterator 可以定位当前的索引位置,通过 nextIndex() 和 previousIndex() 可以实现,Iterator 没有此功能。

都可实现删除对象,但是 ListIterator 可以实现对象的修改,通过 set() 方法可以实现,Iterator 仅能遍历,不能修改。

ListIterator 是 Iterator 的子接口。

注意:容器类提供的迭代器都会在迭代中间进行结构性变化检测,如果容器发生了结构性变化,就会抛出 ConcurrentModificationException,所以不能在迭代中间直接调用容器类提供的 add、remove 方法,如需添加和删除,应调用迭代器的相关方法。

转载请注明原文地址: https://www.6miu.com/read-2450036.html

最新回复(0)