Spec-Zone.ru › OpenJDK 27

Интерфейс 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
См. также:
  • Collection
  • List
  • Iterator
  • Enumeration
  • List.listIterator()

Краткое описание методов

Модификатор и тип Метод Описание
void add(E e)
Вставляет указанный элемент в список (необязательная операция).
boolean hasNext()
Возвращает true, если при обходе списка в прямом направлении у этого итератора списка есть еще элементы.
boolean hasPrevious()
Возвращает true, если при обходе списка в обратном направлении у этого итератора списка есть еще элементы.
E next()
Возвращает следующий элемент списка и перемещает позицию курсора вперед.
int nextIndex()
Возвращает индекс элемента, который будет возвращен при последующем вызове next().
E previous()
Возвращает предыдущий элемент списка и перемещает позицию курсора назад.
int previousIndex()
Возвращает индекс элемента, который будет возвращен при последующем вызове previous().
void remove()
Удаляет из списка последний элемент, возвращенный вызовом next() или previous() (необязательная операция).
void set(E e)
Заменяет последний элемент, возвращенный вызовом next() или previous(), указанным элементом (необязательная операция).

Методы, объявленные в интерфейсе Iterator

forEachRemaining
Модификатор и тип Метод Описание
default void forEachRemaining(Consumer<? super E> action)
Выполняет указанное действие для каждого оставшегося элемента, пока все элементы не будут обработаны или действие не вызовет исключение.

Подробное описание методов

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. Его можно выполнить только в том случае, если после последнего вызова 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 — если какой-либо аспект этого элемента не позволяет добавить его в этот список

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, обзоры основных понятий, определения терминов, способы обхода ограничений и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API