Интерфейс 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
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.