-
- All Superinterfaces:
-
Iterator<E>
public interface ListIterator<E> extends Iterator<E>
用于允许程序员沿任一方向遍历列表的列表的迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置。 AListIterator没有电流元素; 它的光标位置总是位于通过调用previous()返回的元素和通过调用next()返回的元素next()。 长度为n的列表的迭代器具有n+1可能的光标位置,如下图所示的插图^(^)所示:Element(0) Element(1) Element(2) ... Element(n-1) cursor positions: ^ ^ ^ ^ ^请注意,remove()和set(Object)方法未按光标位置进行定义; 它们被定义为对通过调用next()或previous()返回的最后一个元素进行操作。此接口是Java Collections Framework的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Collection,List,Iterator,Enumeration,List.listIterator()
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 voidadd(E e)将指定的元素插入列表(可选操作)。booleanhasNext()如果此列表迭代器在向前方向遍历列表时具有更多元素,则返回true。booleanhasPrevious()如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true。Enext()返回列表中的下一个元素,并且前进光标位置。intnextIndex()返回由后续调用返回的元素的索引next()。Eprevious()返回列表中的上一个元素,并向后移动光标位置。intpreviousIndex()返回由后续调用返回的元素的索引previous()。voidremove()从列表中删除next()或previous()(可选操作)返回的最后一个元素。voidset(E e)用指定的元素(可选操作)替换next()或previous()返回的最后一个元素。-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
方法详细信息
-
hasNext
boolean hasNext()
如果此列表迭代器在向前方向遍历列表时具有更多元素,则返回true。 (换句话说,如果true将返回一个元素而不是抛出异常,则返回true)
-
next
E next()
- Specified by:
-
next在接口Iterator<E> - 结果
- 列表中的下一个元素
- 异常
-
NoSuchElementException- 如果迭代没有下一个元素
-
hasPrevious
boolean hasPrevious()
如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true。 (换句话说,如果true返回一个元素而不是抛出异常,则返回true)- 结果
-
true如果列表迭代器在相反方向遍历列表时具有更多元素
-
previous
E previous()
- 结果
- 列表中的前一个元素
- 异常
-
NoSuchElementException- 如果迭代没有以前的元素
-
nextIndex
int nextIndex()
返回由后续调用next()返回的元素的索引。 (如果列表迭代器位于列表的末尾,则返回列表大小。)- 结果
-
由后续调用
next返回的元素的索引,如果列表迭代器位于列表的末尾,则为列表大小
-
previousIndex
int previousIndex()
返回由后续调用返回的元素的索引previous()。 (如果列表迭代器位于列表的开头,则返回-1)- 结果
-
由后续调用
previous返回的元素的索引,如果列表迭代器位于列表的开头,则为-1
-
remove
void remove()
从列表中删除由next()或previous()返回的最后一个元素(可选操作)。 此呼叫只能拨打next或previous。 它可制成只有add(E)尚未到最后通话后称为next或者previous。- Specified by:
-
remove在接口Iterator<E> - 异常
-
UnsupportedOperationException- 如果此列表迭代器不支持remove操作 -
IllegalStateException- 如果next和previous都不被调用,或者remove或add在最后一次调用后被调用到next或previous
-
set
void set(E e)
用指定的元素替换由next()或previous()返回的最后一个元素(可选操作)。 只有在最后一次拨打next或previous之后既不调用remove()也不add(E),此呼叫可以进行。- 参数
-
e- 用于替换next或previous返回的最后一个元素的元素 - 异常
-
UnsupportedOperationException- 如果set操作不支持此列表迭代器 -
ClassCastException- 如果指定元素的类阻止将其添加到此列表中 -
IllegalArgumentException- 如果指定元素的某些方面阻止将其添加到此列表中 -
IllegalStateException- 如果next和previous被调用,或者remove或add在最后一次通话后被调用到next或previous
-
add
void add(E e)
将指定的元素插入列表(可选操作)。 该元素将紧接在由next()(如果有)返回的元素之前,以及由previous()返回的元素之后。 (如果列表不包含元素,则新元素将成为列表中的唯一元素。)新元素插入隐式游标之前:后续调用next将不受影响,后续调用previous将返回新元素。 (此呼叫将增加一个呼叫返回的值为nextIndex或previousIndex。- 参数
-
e- 要插入的元素 - 异常
-
UnsupportedOperationException- 如果此列表迭代器不支持add方法 -
ClassCastException- 如果指定元素的类阻止将其添加到此列表中 -
IllegalArgumentException- 如果此元素的某些方面阻止将其添加到此列表
-
-