- 类型参数:
-
E- 此列表迭代器返回的元素类型
- 所有超接口:
-
Iterator<E>
一个允许程序员在列表中向前或向后遍历的迭代器,可以在迭代期间修改列表,并获取迭代器在列表中的当前位置。
ListIterator 没有当前元素;它的光标位置始终位于通过调用 previous() 返回的元素和通过调用 next() 返回的元素之间。长度为 n 的列表的迭代器具有 n+1 个可能的光标位置,如下所示:
元素(0) 元素(1) 元素(2) ... 元素(n-1) 光标位置: ^ ^ ^ ^ ^请注意,
remove() 和 set(Object) 方法并非根据光标位置定义;它们被定义为操作最后通过调用 next() 或 previous() 返回的元素。
此接口是 Java集合框架 的成员。
- 自版本:
- 1.2
- 另请参阅:
-
Method Summary
Modifier and TypeMethodDescriptionvoid将指定的元素插入列表中(可选操作)。booleanhasNext()在向前遍历列表时,如果此列表迭代器有更多元素,则返回true。boolean在向后遍历列表时,如果此列表迭代器有更多元素,则返回true。next()返回列表中的下一个元素并移动光标位置。int返回将由后续调用next()返回的元素的索引。previous()返回列表中的上一个元素并向后移动光标位置。int返回将由后续调用previous()返回的元素的索引。voidremove()从列表中删除上次由next()或previous()返回的最后一个元素(可选操作)。void用指定的元素替换上次由next()或previous()返回的最后一个元素(可选操作)。Methods declared in interface java.util.Iterator
forEachRemaining
-
Method Details
-
hasNext
boolean hasNext() -
next
E next()- 指定者:
-
next在接口Iterator<E> - 返回:
- 列表中的下一个元素
- 抛出:
-
NoSuchElementException- 如果迭代没有下一个元素
-
hasPrevious
boolean hasPrevious()- 返回:
-
如果向后遍历列表时此列表迭代器有更多元素,则返回
true
-
previous
E previous()- 返回:
- 列表中的上一个元素
- 抛出:
-
NoSuchElementException- 如果迭代没有上一个元素
-
nextIndex
int nextIndex()返回将由后续调用next()返回的元素的索引。 (如果列表迭代器位于列表末尾,则返回列表大小。)- 返回:
-
将由后续调用
next返回的元素的索引,如果列表迭代器位于列表末尾,则返回列表大小
-
previousIndex
int previousIndex()返回将由后续调用previous()返回的元素的索引。 (如果列表迭代器位于列表开头,则返回 -1。)- 返回:
-
将由后续调用
previous返回的元素的索引,如果列表迭代器位于列表开头,则返回 -1
-
remove
void remove()从列表中删除上次由next()或previous()返回的最后一个元素(可选操作)。每次调用next或previous仅能调用一次此操作。仅当在上次调用next或previous后未调用add(E)时才能调用此操作。- 指定者:
-
remove在接口Iterator<E> - 抛出:
-
UnsupportedOperationException- 如果此列表迭代器不支持remove操作 -
IllegalStateException- 如果既未调用next也未调用previous,或在上次调用next或previous后调用了remove或add
-
set
用指定的元素替换上次由next()或previous()返回的最后一个元素(可选操作)。仅当在上次调用next或previous后未调用remove()或add(E)时才能调用此操作。- 参数:
-
e- 用于替换上次由next或previous返回的最后一个元素的元素 - 抛出:
-
UnsupportedOperationException- 如果此列表迭代器不支持set操作 -
ClassCastException- 如果指定元素的类阻止将其添加到此列表 -
IllegalArgumentException- 如果指定元素的某些方面阻止将其添加到此列表 -
IllegalStateException- 如果既未调用next也未调用previous,或在上次调用next或previous后调用了remove或add
-
add
将指定的元素插入列表中(可选操作)。如果有的话,该元素将插入到将由next()返回的元素之前,并在将由previous()返回的元素之后。 (如果列表不包含元素,则新元素将成为列表上的唯一元素。)新元素将插入到隐式光标之前:后续调用next不受影响,后续调用previous将返回新元素。 (此调用将增加调用nextIndex或previousIndex时返回的值。)- 参数:
-
e- 要插入的元素 - 抛出:
-
UnsupportedOperationException- 如果此列表迭代器不支持add方法 -
ClassCastException- 如果指定元素的类阻止将其添加到此列表 -
IllegalArgumentException- 如果此元素的某些方面阻止将其添加到此列表
-