java中的ListIterator在Iterator基础上提供了add、set、previous等对列表的操作。ListIterator跟Iterator一样,仍是在原列表上进行操作。
基本介绍
- 中文名鍊表叠代器
- 外文名ListIterator
叠代器这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的叠代接口进行Collection的遍历
Iterator原始码
package java.util;public interface Iterator<E> { boolean hasNext(); E next(); void remove();}
ListIterator原始码
public interface ListIterator<E> extends Iterator<E> { boolean hasNext(); E next(); boolean hasPrevious(); E previous(); int nextIndex(); int previousIndex(); void remove(); void set(E e); void add(E e);}
Iterator和ListIterator主要区别在以下方面
1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。3. ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。4. 都可实现删除对象,ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。