- 类型参数:
-
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
将指定的元素插入列表中(可选操作)。boolean
hasNext()
在向前遍历列表时,如果此列表迭代器有更多元素,则返回true
。boolean
在向后遍历列表时,如果此列表迭代器有更多元素,则返回true
。next()
返回列表中的下一个元素并移动光标位置。int
返回将由后续调用next()
返回的元素的索引。previous()
返回列表中的上一个元素并向后移动光标位置。int
返回将由后续调用previous()
返回的元素的索引。void
remove()
从列表中删除上次由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
- 如果此元素的某些方面阻止将其添加到此列表
-