【集合】Iterator和ListIterator的区别和联系

List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,

Iterator和ListIterator主要区别在以下方面:


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

2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,

可以实现逆向(顺序向前)遍历。Iterator就不可以,Iterator中具备的功能只有hashNext(),next(),remove()。


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

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

ListIterator中具备着对被遍历的元素进行增删改查的方法,可以对元素进行逆向遍历。
之所以如此,是因为ListIterator遍历的元素所在的容器都有索引。

5.Iterator是ListIterator的父接口。

6.Iterator是单列集合(Collection),是取出容器中元素的公共方式。
对于List,Set都通用。而ListIterator是List集合的特有取出元素方式。











你可能感兴趣的:(iterator,ListIterator)