Интерфейс ListIterator<E>
- Параметры типа:
E- тип элементов, возвращаемых этим итератором списка
- Все суперинтерфейсы:
Iterator<E>
public interface ListIterator<E> extends Iterator<E>
Итератор для списков, который позволяет программисту перемещаться по списку в обоих направлениях, изменять список во время итерации и получать текущую позицию итератора в списке. У
ListIterator нет текущего элемента; его позиция курсора всегда находится между элементом, который был бы возвращён вызовом previous(), и элементом, который был бы возвращён вызовом 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Вставляет указанный элемент в список (необязательная операция). |
boolean |
hasNext() |
Возвращает true, если при перемещении по списку вперёд у этого итератора списка есть следующие элементы. |
boolean |
hasPrevious() |
Возвращает true, если при перемещении по списку назад у этого итератора списка есть предыдущие элементы. |
E |
next() |
Возвращает следующий элемент списка и перемещает позицию курсора вперёд. |
int |
nextIndex() |
Возвращает индекс элемента, который будет возвращён последующим вызовом next(). |
E |
previous() |
Возвращает предыдущий элемент списка и перемещает позицию курсора назад. |
int |
previousIndex() |
Возвращает индекс элемента, который будет возвращён последующим вызовом previous(). |
void |
remove() |
Удаляет из списка последний элемент, возвращённый вызовом next() или previous() (необязательная операция). |
void |
set |
Заменяет последний элемент, возвращённый вызовом next() или previous(), указанным элементом (необязательная операция). |
Методы, объявленные в интерфейсе Iterator
forEachRemaining
Подробное описание методов
hasNext
boolean hasNext()
Возвращает
true, если при перемещении по списку вперёд у этого итератора списка есть следующие элементы. (Другими словами, возвращает true, если next() вернёт элемент, а не вызовет исключение.)next
E next()
Возвращает следующий элемент списка и перемещает позицию курсора вперёд. Этот метод можно вызывать многократно для обхода списка или чередовать его вызовы с вызовами
previous() для перемещения в обоих направлениях. (Обратите внимание, что чередующиеся вызовы next и previous будут многократно возвращать один и тот же элемент.)- Определено в:
-
nextв интерфейсеIterator<E> - Возвращает:
- следующий элемент списка
- Выбрасывает:
-
NoSuchElementException- если в итерации нет следующего элемента
hasPrevious
boolean hasPrevious()
Возвращает
true, если при перемещении по списку назад у этого итератора списка есть предыдущие элементы. (Другими словами, возвращает true, если previous() вернёт элемент, а не вызовет исключение.)- Возвращает:
-
true, если при перемещении по списку назад у итератора списка есть предыдущие элементы
previous
E previous()
Возвращает предыдущий элемент списка и перемещает позицию курсора назад. Этот метод можно вызывать многократно для обхода списка в обратном направлении или чередовать его вызовы с вызовами
next() для перемещения в обоих направлениях. (Обратите внимание, что чередующиеся вызовы next и 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
void set(E e)
Заменяет последний элемент, возвращённый вызовом
next() или previous(), указанным элементом (необязательная операция). Этот вызов можно выполнить только в том случае, если после последнего вызова next или previous не вызывались ни remove(), ни add(E).- Параметры:
-
e- элемент, которым заменяется последний элемент, возвращённый вызовомnextилиprevious - Выбрасывает:
-
UnsupportedOperationException- если эта операцияsetне поддерживается данным итератором списка -
ClassCastException- если класс указанного элемента не позволяет добавить его в этот список -
IllegalArgumentException- если какой-либо аспект указанного элемента не позволяет добавить его в этот список -
IllegalStateException- если не вызывался ниnext, ниprevious, или если после последнего вызоваnextилиpreviousвызывался методremoveилиadd
add
void add(E e)
Вставляет указанный элемент в список (необязательная операция). Элемент вставляется непосредственно перед элементом, который, если он существует, будет возвращён вызовом
next(), и после элемента, который, если он существует, будет возвращён вызовом previous(). (Если список не содержит элементов, новый элемент становится единственным элементом списка.) Новый элемент вставляется перед неявным курсором: последующий вызов next не будет затронут, а последующий вызов previous вернёт новый элемент. (Этот вызов увеличивает на единицу значение, которое было бы возвращено вызовом nextIndex или previousIndex.)- Параметры:
-
e- вставляемый элемент - Выбрасывает:
-
UnsupportedOperationException- если методaddне поддерживается данным итератором списка -
ClassCastException- если класс указанного элемента не позволяет добавить его в этот список -
IllegalArgumentException- если какой-либо аспект этого элемента не позволяет добавить его в этот список
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/ListIterator.html