Интерфейс ListIterator<E>
- Type Parameters:
-
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.
- Since:
- 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(), указанным элементом (необязательная операция). |
Методы, объявленные в интерфейсе java.util.Iterator
forEachRemaining
Подробное описание методов
hasNext
boolean hasNext()
Возвращает
true, если у этого итератора списка есть ещё элементы при прохождении по списку в прямом направлении. (Другими словами, возвращает true если next() вернёт элемент, а не бросит исключение.)- Определено в:
-
hasNextв интерфейсеIterator<E> - Возвращает:
-
trueесли у итератора списка есть ещё элементы при прохождении по списку в прямом направлении
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. Его можно выполнить только в том случае, если add(E) не был вызван после последнего вызова next или previous. - Определено в:
-
removeв интерфейсеIterator<E> - Исключения:
-
UnsupportedOperationException- если операцияremoveне поддерживается этим итератором списка -
IllegalStateException- если ниnextниpreviousне были вызваны, илиremoveилиaddбыли вызваны после последнего вызоваnextилиprevious
set
void set(E e)
Заменяет последний элемент, возвращённый
next() или previous(), указанным элементом (необязательная операция). Этот вызов можно сделать только если ни remove() ни add(E) не были вызваны после последнего вызова next или previous.- Параметры:
-
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- если некоторые аспекты этого элемента препятствуют его добавлению в этот список
© 1993, 2023, 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/21/docs/api/java.base/java/util/ListIterator.html