Spec-Zone.ru › OpenJDK 25

Интерфейс List<E>

Параметры типа:
E — тип элементов в этом списке
Все супер-интерфейсы:
Collection<E>, Iterable<E>, SequencedCollection<E>
Все известные реализующие классы:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
public interface List<E> extends SequencedCollection<E>
Упорядоченная коллекция, в которой пользователь точно контролирует, в какую позицию списка вставляется каждый элемент. Пользователь может получать доступ к элементам по их целочисленному индексу (позиции в списке) и выполнять поиск элементов в списке.

В отличие от множеств, списки обычно допускают дублирующиеся элементы. Более формально, списки обычно допускают пары элементов e1 и e2, такие что e1.equals(e2), а также обычно допускают несколько элементов null, если вообще допускают элементы null. Вполне возможно, что кому-то может понадобиться реализовать список, запрещающий дубликаты и выбрасывающий исключения времени выполнения при попытке пользователя вставить их, но мы ожидаем, что такой вариант использования будет редким.

Интерфейс List устанавливает дополнительные требования к контрактам методов iterator, add, remove, equals и hashCode сверх требований, указанных в интерфейсе Collection. Объявления других унаследованных методов также приведены здесь для удобства.

Интерфейс List предоставляет четыре метода для позиционного (индексированного) доступа к элементам списка. Индексация списков (как и массивов Java) начинается с нуля. Обратите внимание, что в некоторых реализациях эти операции могут выполняться за время, пропорциональное значению индекса (например, в классе LinkedList). Поэтому, если вызывающему коду неизвестна реализация, обычно предпочтительнее перебирать элементы списка, а не обращаться к ним по индексу.

Интерфейс List предоставляет специальный итератор, называемый ListIterator, который помимо обычных операций интерфейса Iterator позволяет вставлять и заменять элементы, а также выполнять двунаправленный обход. Предусмотрен метод для получения итератора списка, начинающего обход с заданной позиции в списке.

Интерфейс List предоставляет два метода для поиска заданного объекта. С точки зрения производительности эти методы следует использовать с осторожностью. Во многих реализациях они выполняют затратный линейный поиск.

Интерфейс List предоставляет два метода для эффективной вставки и удаления нескольких элементов в произвольной позиции списка.

Примечание. Хотя списки могут содержать сами себя в качестве элементов, следует проявлять особую осторожность: методы equals и hashCode для такого списка больше не имеют однозначного определения.

Некоторые реализации списков накладывают ограничения на содержащиеся в них элементы. Например, некоторые реализации запрещают элементы null, а некоторые ограничивают типы элементов. Попытка добавить недопустимый элемент приводит к выбрасыванию непроверяемого исключения, обычно NullPointerException или ClassCastException. Попытка проверить наличие недопустимого элемента может привести к выбрасыванию исключения либо просто вернуть false; одни реализации ведут себя первым образом, другие — вторым. В более общем случае попытка выполнить операцию с недопустимым элементом, которая не приведёт к добавлению недопустимого элемента в список, может привести к выбрасыванию исключения или завершиться успешно — по выбору реализации. В спецификации этого интерфейса такие исключения помечены как «необязательные».

Неизменяемые списки

Статические фабричные методы List.of и List.copyOf предоставляют удобный способ создания неизменяемых списков. Экземпляры List, созданные этими методами, обладают следующими характеристиками:

  • Они являются неизменяемыми. Элементы нельзя добавлять, удалять или заменять. Вызов любого метода-мутатора для List всегда приводит к выбрасыванию UnsupportedOperationException. Однако, если содержащиеся элементы сами являются изменяемыми, содержимое List может казаться изменившимся.
  • Они не допускают элементы null. Попытки создать их с элементами null приводят к NullPointerException.
  • Они являются сериализуемыми, если все элементы сериализуемы.
  • Порядок элементов в списке совпадает с порядком переданных аргументов или элементов переданного массива.
  • Списки и их представления subList реализуют интерфейс RandomAccess.
  • Они являются основанными на значении. Программистам следует считать взаимозаменяемыми экземпляры, которые равны, и не использовать их для синхронизации, иначе может возникнуть непредсказуемое поведение. Например, в будущей версии синхронизация может завершиться неудачей. Вызывающий код не должен делать предположений об идентичности возвращаемых экземпляров. Фабричные методы могут создавать новые экземпляры или повторно использовать существующие.
  • Они сериализуются в соответствии с описанием на странице Сериализованное представление.

Этот интерфейс является частью Java Collections Framework.

Начиная с версии:
1.2
См. также:
  • Collection
  • Set
  • ArrayList
  • LinkedList
  • Vector
  • Arrays.asList(Object[])
  • Collections.nCopies(int, Object)
  • Collections.EMPTY_LIST
  • AbstractList
  • AbstractSequentialList

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

Модификатор и тип Метод Описание
void add(int index, E element)
Вставляет указанный элемент в заданную позицию этого списка (необязательная операция).
boolean add(E e)
Добавляет указанный элемент в конец этого списка (необязательная операция).
boolean addAll(int index, Collection<? extends E> c)
Вставляет все элементы указанной коллекции в этот список, начиная с заданной позиции (необязательная операция).
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в конец этого списка в порядке, в котором их возвращает итератор указанной коллекции (необязательная операция).
default void addFirst(E e)
Добавляет элемент в начало этой коллекции (необязательная операция).
default void addLast(E e)
Добавляет элемент в конец этой коллекции (необязательная операция).
void clear()
Удаляет все элементы из этого списка (необязательная операция).
boolean contains(Object o)
Возвращает true, если этот список содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает true, если этот список содержит все элементы указанной коллекции.
static <E> List<E> copyOf(Collection<? extends E> coll)
Возвращает неизменяемый список, содержащий элементы заданной коллекции в порядке их обхода.
boolean equals(Object o)
Сравнивает указанный объект с этим списком на равенство.
E get(int index)
Возвращает элемент, находящийся в указанной позиции этого списка.
default E getFirst()
Возвращает первый элемент этой коллекции.
default E getLast()
Возвращает последний элемент этой коллекции.
int hashCode()
Возвращает значение хеш-кода этого списка.
int indexOf(Object o)
Возвращает индекс первого вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент.
boolean isEmpty()
Возвращает true, если этот список не содержит элементов.
Iterator<E> iterator()
Возвращает итератор для обхода элементов этого списка в надлежащем порядке.
int lastIndexOf(Object o)
Возвращает индекс последнего вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент.
ListIterator<E> listIterator()
Возвращает итератор списка для обхода элементов этого списка (в надлежащем порядке).
ListIterator<E> listIterator(int index)
Возвращает итератор списка для обхода элементов этого списка (в надлежащем порядке), начиная с заданной позиции.
static <E> List<E> of()
Возвращает неизменяемый список, содержащий ноль элементов.
static <E> List<E> of(E e1)
Возвращает неизменяемый список, содержащий один элемент.
static <E> List<E> of(E... elements)
Возвращает неизменяемый список с произвольным количеством элементов.
static <E> List<E> of(E e1, E e2)
Возвращает неизменяемый список, содержащий два элемента.
static <E> List<E> of(E e1, E e2, E e3)
Возвращает неизменяемый список, содержащий три элемента.
static <E> List<E> of(E e1, E e2, E e3, E e4)
Возвращает неизменяемый список, содержащий четыре элемента.
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5)
Возвращает неизменяемый список, содержащий пять элементов.
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6)
Возвращает неизменяемый список, содержащий шесть элементов.
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7)
Возвращает неизменяемый список, содержащий семь элементов.
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)
Возвращает неизменяемый список, содержащий восемь элементов.
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9)
Возвращает неизменяемый список, содержащий девять элементов.
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10)
Возвращает неизменяемый список, содержащий десять элементов.
E remove(int index)
Удаляет элемент, находящийся в указанной позиции этого списка (необязательная операция).
boolean remove(Object o)
Удаляет первое вхождение указанного элемента из этого списка, если он присутствует (необязательная операция).
boolean removeAll(Collection<?> c)
Удаляет из этого списка все элементы, содержащиеся в указанной коллекции (необязательная операция).
default E removeFirst()
Удаляет и возвращает первый элемент этой коллекции (необязательная операция).
default E removeLast()
Удаляет и возвращает последний элемент этой коллекции (необязательная операция).
default void replaceAll(UnaryOperator<E> operator)
Заменяет каждый элемент этого списка результатом применения оператора к этому элементу (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет в этом списке только элементы, содержащиеся в указанной коллекции (необязательная операция).
default List<E> reversed()
Возвращает представление этой коллекции в обратном порядке.
E set(int index, E element)
Заменяет элемент, находящийся в указанной позиции этого списка, указанным элементом (необязательная операция).
int size()
Возвращает количество элементов в этом списке.
default void sort(Comparator<? super E> c)
Сортирует этот список в соответствии с порядком, задаваемым указанным Comparator (необязательная операция).
default Spliterator<E> spliterator()
Создаёт Spliterator для обхода элементов этого списка.
List<E> subList(int fromIndex, int toIndex)
Возвращает представление части этого списка между fromIndex включительно и toIndex исключительно.
Object[] toArray()
Возвращает массив, содержащий все элементы этого списка в надлежащем порядке (от первого элемента к последнему).
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого списка в надлежащем порядке (от первого элемента к последнему); тип возвращаемого массива во время выполнения совпадает с типом указанного массива.

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

parallelStream, removeIf, stream, toArray

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

forEach

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

size

int size()
Возвращает количество элементов в этом списке. Если список содержит более Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.
Определено в:
size в интерфейсе Collection<E>
Возвращает:
количество элементов в этом списке

isEmpty

boolean isEmpty()
Возвращает true, если этот список не содержит элементов.
Определено в:
isEmpty в интерфейсе Collection<E>
Возвращает:
true, если этот список не содержит элементов

contains

boolean contains(Object o)
Возвращает true, если этот список содержит указанный элемент. Точнее, возвращает true тогда и только тогда, когда этот список содержит хотя бы один элемент e, для которого Objects.equals(o, e).
Определено в:
contains в интерфейсе Collection<E>
Параметры:
o — элемент, наличие которого в этом списке проверяется
Возвращает:
true, если этот список содержит указанный элемент
Вызывает исключение:
ClassCastException — если тип указанного элемента несовместим с этим списком (необязательно)
NullPointerException — если указанный элемент равен null, а этот список не допускает элементы null (необязательно)

iterator

Iterator<E> iterator()
Возвращает итератор по элементам этого списка в надлежащем порядке.
Определено в:
iterator в интерфейсе Collection<E>
Определено в:
iterator в интерфейсе Iterable<E>
Возвращает:
итератор по элементам этого списка в надлежащем порядке

toArray

Object[] toArray()
Возвращает массив, содержащий все элементы этого списка в надлежащем порядке (от первого до последнего элемента).

Возвращённый массив является «безопасным»: этот список не хранит на него ссылок. (Иными словами, этот метод должен выделять новый массив, даже если список основан на массиве.) Поэтому вызывающий код может свободно изменять возвращённый массив.

Этот метод служит связующим звеном между API на основе массивов и API на основе коллекций.

Определено в:
toArray в интерфейсе Collection<E>
Возвращает:
массив, содержащий все элементы этого списка в надлежащем порядке
См. также:
  • Arrays.asList(Object[])

toArray

<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого списка в надлежащем порядке (от первого до последнего элемента); тип возвращённого массива во время выполнения соответствует типу указанного массива. Если список помещается в указанный массив, он возвращается в нём. В противном случае выделяется новый массив с типом указанного массива во время выполнения и размером этого списка.

Если список помещается в указанный массив с запасом (то есть в массиве больше элементов, чем в списке), элемент массива сразу после конца списка устанавливается в значение null. (Это полезно для определения длины списка только в том случае, если вызывающий код знает, что список не содержит элементов null.)

Как и метод toArray(), этот метод служит связующим звеном между API на основе массивов и API на основе коллекций. Кроме того, этот метод позволяет точно контролировать тип выходного массива во время выполнения и при определённых обстоятельствах может использоваться для сокращения затрат на выделение памяти.

Предположим, что x — это список, который заведомо содержит только строки. Чтобы выгрузить список в новый выделенный массив типа String, можно использовать следующий код:

    String[] y = x.toArray(new String[0]);
Обратите внимание, что toArray(new Object[0]) функционально эквивалентен toArray().
Определено в:
toArray в интерфейсе Collection<E>
Параметры типа:
T — тип компонентов массива, в котором будет храниться коллекция
Параметры:
a — массив, в который будут помещены элементы этого списка, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа во время выполнения.
Возвращает:
массив, содержащий элементы этого списка
Вызывает исключение:
ArrayStoreException — если тип указанного массива во время выполнения не является супертипом типа во время выполнения каждого элемента этого списка
NullPointerException — если указанный массив равен null

add

boolean add(E e)
Добавляет указанный элемент в конец этого списка (необязательная операция).

Списки, поддерживающие эту операцию, могут накладывать ограничения на элементы, которые можно добавить в список. В частности, некоторые списки не допускают добавление элементов null, а другие ограничивают тип добавляемых элементов. В документации к классам списков следует чётко указывать любые ограничения на добавляемые элементы.

Определено в:
add в интерфейсе Collection<E>
Параметры:
e — элемент, который нужно добавить в конец этого списка
Возвращает:
true (как указано в Collection.add(E))
Вызывает исключение:
UnsupportedOperationException — если эта операция add не поддерживается данным списком
ClassCastException — если класс указанного элемента не позволяет добавить его в этот список
NullPointerException — если указанный элемент равен null, а этот список не допускает элементы null
IllegalArgumentException — если какое-либо свойство этого элемента не позволяет добавить его в этот список

remove

boolean remove(Object o)
Удаляет первое вхождение указанного элемента из этого списка, если оно есть (необязательная операция). Если список не содержит этот элемент, он не изменяется. Точнее, удаляется элемент с наименьшим индексом i, для которого Objects.equals(o, get(i)) (если такой элемент существует). Возвращает true, если этот список содержал указанный элемент (или, что равнозначно, если список изменился в результате вызова).
Определено в:
remove в интерфейсе Collection<E>
Параметры:
o — элемент, который нужно удалить из этого списка, если он присутствует
Возвращает:
true, если этот список содержал указанный элемент
Вызывает исключение:
ClassCastException — если тип указанного элемента несовместим с этим списком (необязательно)
NullPointerException — если указанный элемент равен null, а этот список не допускает элементы null (необязательно)
UnsupportedOperationException — если операция remove не поддерживается данным списком

containsAll

boolean containsAll(Collection<?> c)
Возвращает true, если этот список содержит все элементы указанной коллекции.
Определено в:
containsAll в интерфейсе Collection<E>
Параметры:
c — коллекция, наличие элементов которой в этом списке проверяется
Возвращает:
true, если этот список содержит все элементы указанной коллекции
Вызывает исключение:
ClassCastException — если типы одного или нескольких элементов указанной коллекции несовместимы с этим списком (необязательно)
NullPointerException — если указанная коллекция содержит один или несколько элементов null, а этот список не допускает элементы null (необязательно), или если указанная коллекция равна null
См. также:
  • contains(Object)

addAll

boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в конец этого списка в том порядке, в котором их возвращает итератор указанной коллекции (необязательная операция). Поведение этой операции не определено, если указанная коллекция изменяется во время её выполнения. (Обратите внимание: это произойдёт, если указанная коллекция — данный список и он не пуст.)
Определено в:
addAll в интерфейсе Collection<E>
Параметры:
c — коллекция, содержащая элементы, которые нужно добавить в этот список
Возвращает:
true, если этот список изменился в результате вызова
Вызывает исключение:
UnsupportedOperationException — если операция addAll не поддерживается данным списком
ClassCastException — если класс элемента указанной коллекции не позволяет добавить его в этот список
NullPointerException — если указанная коллекция содержит один или несколько элементов null, а этот список не допускает элементы null, или если указанная коллекция равна null
IllegalArgumentException — если какое-либо свойство элемента указанной коллекции не позволяет добавить его в этот список
См. также:
  • add(Object)

addAll

boolean addAll(int index, Collection<? extends E> c)
Вставляет все элементы указанной коллекции в этот список, начиная с заданной позиции (необязательная операция). Элемент, находящийся на этой позиции (если он есть), и все последующие элементы сдвигаются вправо (их индексы увеличиваются). Новые элементы появятся в этом списке в том порядке, в котором их возвращает итератор указанной коллекции. Поведение этой операции не определено, если указанная коллекция изменяется во время её выполнения. (Обратите внимание: это произойдёт, если указанная коллекция — данный список и он не пуст.)
Параметры:
index — индекс, по которому нужно вставить первый элемент указанной коллекции
c — коллекция, содержащая элементы, которые нужно добавить в этот список
Возвращает:
true, если этот список изменился в результате вызова
Вызывает исключение:
UnsupportedOperationException — если операция addAll не поддерживается данным списком
ClassCastException — если класс элемента указанной коллекции не позволяет добавить его в этот список
NullPointerException — если указанная коллекция содержит один или несколько элементов null, а этот список не допускает элементы null, или если указанная коллекция равна null
IllegalArgumentException — если какое-либо свойство элемента указанной коллекции не позволяет добавить его в этот список
IndexOutOfBoundsException — если индекс выходит за пределы допустимого диапазона (index < 0 || index > size())

removeAll

boolean removeAll(Collection<?> c)
Удаляет из этого списка все элементы, содержащиеся в указанной коллекции (необязательная операция).
Определено в:
removeAll в интерфейсе Collection<E>
Параметры:
c — коллекция, содержащая элементы, которые нужно удалить из этого списка
Возвращает:
true, если этот список изменился в результате вызова
Вызывает исключение:
UnsupportedOperationException — если операция removeAll не поддерживается данным списком
ClassCastException — если класс элемента этого списка несовместим с указанной коллекцией (необязательно)
NullPointerException — если этот список содержит элемент null, а указанная коллекция не допускает элементы null (необязательно), или если указанная коллекция равна null
См. также:
  • remove(Object)
  • contains(Object)

retainAll

boolean retainAll(Collection<?> c)
Оставляет в этом списке только элементы, содержащиеся в указанной коллекции (необязательная операция). Иными словами, удаляет из этого списка все элементы, не содержащиеся в указанной коллекции.
Определено в:
retainAll в интерфейсе Collection<E>
Параметры:
c — коллекция, содержащая элементы, которые нужно оставить в этом списке
Возвращает:
true, если этот список изменился в результате вызова
Вызывает исключение:
UnsupportedOperationException — если операция retainAll не поддерживается данным списком
ClassCastException — если класс элемента этого списка несовместим с указанной коллекцией (необязательно)
NullPointerException — если этот список содержит элемент null, а указанная коллекция не допускает элементы null (необязательно), или если указанная коллекция равна null
См. также:
  • remove(Object)
  • contains(Object)

replaceAll

default void replaceAll(UnaryOperator<E> operator)
Заменяет каждый элемент этого списка результатом применения оператора к этому элементу (необязательная операция). Ошибки и исключения времени выполнения, выброшенные оператором, передаются вызывающему коду.
Требования к реализации:
Реализация по умолчанию эквивалентна следующему коду для этого list:
    final ListIterator<E> li = list.listIterator();
    while (li.hasNext()) {
        li.set(operator.apply(li.next()));
    }
Если list-iterator списка не поддерживает операцию set, при замене первого элемента будет выброшено исключение UnsupportedOperationException.
Параметры:
operator — оператор, применяемый к каждому элементу
Вызывает исключение:
UnsupportedOperationException — если операция replaceAll не поддерживается данным списком
NullPointerException — если указанный оператор равен null или результат оператора равен null, а этот список не допускает элементы null (необязательно)
Начиная с версии:
1.8

sort

default void sort(Comparator<? super E> c)
Сортирует этот список в порядке, задаваемом указанным Comparator (необязательная операция). Сортировка является стабильной: этот метод не должен менять порядок равных элементов.

Все элементы этого списка должны быть взаимно сравнимы с помощью указанного компаратора (то есть c.compare(e1, e2) не должен выбрасывать ClassCastException ни для каких элементов e1 и e2 списка).

Если указанный компаратор равен null, все элементы этого списка должны реализовывать интерфейс Comparable, а для элементов следует использовать их естественный порядок.

Этот список должен допускать изменение элементов, но не обязательно изменение размера.

Требования к реализации:
Реализация по умолчанию получает массив, содержащий все элементы этого списка, сортирует его и проходит по списку, заново устанавливая каждый элемент из соответствующей позиции массива. (Это позволяет избежать производительности n2 log(n), которая возникла бы при попытке сортировать связанный список на месте.)
Примечание по реализации:
Эта реализация представляет собой стабильную адаптивную итеративную сортировку слиянием, которой требуется значительно меньше n lg(n) сравнений, если входной массив частично отсортирован; при случайном порядке элементов она обеспечивает производительность обычной сортировки слиянием. Если входной массив почти отсортирован, реализации требуется примерно n сравнений. Требования к временному хранилищу варьируются от небольшой константы для почти отсортированных входных массивов до n/2 ссылок на объекты для входных массивов со случайным порядком элементов.

Реализация одинаково эффективно использует возрастающий и убывающий порядок во входном массиве, а также может использовать возрастающий и убывающий порядок в разных частях одного и того же входного массива. Она хорошо подходит для слияния двух или более отсортированных массивов: достаточно объединить массивы и отсортировать полученный массив.

Реализация адаптирована из алгоритма сортировки списков Тима Питерса для Python ( TimSort). В ней используются методы из работы Питера Макилроя «Оптимистическая сортировка и информационно-теоретическая сложность», представленной на Четвёртом ежегодном симпозиуме ACM-SIAM по дискретным алгоритмам, с. 467–474, январь 1993 г.

Параметры:
c — Comparator, используемый для сравнения элементов списка. Значение null означает, что следует использовать естественный порядок элементов
Вызывает исключение:
ClassCastException — если список содержит элементы, которые нельзя взаимно сравнить с помощью указанного компаратора
UnsupportedOperationException — если операция sort не поддерживается данным списком
IllegalArgumentException — (необязательно), если обнаружено, что компаратор нарушает контракт Comparator
Начиная с версии:
1.8

clear

void clear()
Удаляет все элементы из этого списка (необязательная операция). После возврата из этого вызова список будет пуст.
Определено в:
clear в интерфейсе Collection<E>
Вызывает исключение:
UnsupportedOperationException — если операция clear не поддерживается данным списком

equals

boolean equals(Object o)
Сравнивает указанный объект с этим списком на равенство. Возвращает true тогда и только тогда, когда указанный объект также является списком, оба списка имеют одинаковый размер, а все соответствующие пары элементов в этих списках равны. (Два элемента e1 и e2 равны, если Objects.equals(e1, e2).) Иными словами, два списка считаются равными, если они содержат одинаковые элементы в одинаковом порядке. Это определение гарантирует корректную работу метода equals для различных реализаций интерфейса List.
Определено в:
equals в интерфейсе Collection<E>
Переопределяет:
equals в классе Object
Параметры:
o — объект, который сравнивается на равенство с этим списком
Возвращает:
true, если указанный объект равен этому списку
См. также:
  • Object.equals(Object)
  • Set.equals(Object)
  • equals(Object)

hashCode

int hashCode()
Возвращает хеш-код этого списка. Хеш-код списка определяется как результат следующего вычисления:
    int hashCode = 1;
    for (E e : list)
        hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
Это гарантирует, что из list1.equals(list2) следует list1.hashCode()==list2.hashCode() для любых двух списков list1 и list2, как того требует общий контракт Object.hashCode().
Определено в:
hashCode в интерфейсе Collection<E>
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого списка
См. также:
  • Object.equals(Object)
  • equals(Object)

get

E get(int index)
Возвращает элемент, расположенный в указанной позиции этого списка.
Параметры:
index — индекс возвращаемого элемента
Возвращает:
элемент, расположенный в указанной позиции этого списка
Вызывает исключение:
IndexOutOfBoundsException — если индекс выходит за пределы допустимого диапазона (index < 0 || index >= size())

set

E set(int index, E element)
Заменяет элемент, расположенный в указанной позиции этого списка, указанным элементом (необязательная операция).
Параметры:
index — индекс заменяемого элемента
element — элемент, который нужно сохранить в указанной позиции
Возвращает:
элемент, ранее находившийся в указанной позиции
Вызывает исключение:
UnsupportedOperationException — если операция set не поддерживается данным списком
ClassCastException — если класс указанного элемента не позволяет добавить его в этот список
NullPointerException — если указанный элемент равен null, а этот список не допускает элементы null
IllegalArgumentException — если какое-либо свойство указанного элемента не позволяет добавить его в этот список
IndexOutOfBoundsException — если индекс выходит за пределы допустимого диапазона (index < 0 || index >= size())

add

void add(int index, E element)
Вставляет указанный элемент в заданную позицию этого списка (необязательная операция). Элемент, находящийся на этой позиции (если он есть), и все последующие элементы сдвигаются вправо (их индексы увеличиваются на единицу).
Параметры:
index — индекс, по которому нужно вставить указанный элемент
element — элемент, который нужно вставить
Вызывает исключение:
UnsupportedOperationException — если операция add не поддерживается данным списком
ClassCastException — если класс указанного элемента не позволяет добавить его в этот список
NullPointerException — если указанный элемент равен null, а этот список не допускает элементы null
IllegalArgumentException — если какое-либо свойство указанного элемента не позволяет добавить его в этот список
IndexOutOfBoundsException — если индекс выходит за пределы допустимого диапазона (index < 0 || index > size())

remove

E remove(int index)
Удаляет элемент, расположенный в указанной позиции этого списка (необязательная операция). Все последующие элементы сдвигаются влево (их индексы уменьшаются на единицу). Возвращает элемент, удалённый из списка.
Параметры:
index — индекс удаляемого элемента
Возвращает:
элемент, ранее находившийся в указанной позиции
Вызывает исключение:
UnsupportedOperationException — если операция remove не поддерживается данным списком
IndexOutOfBoundsException — если индекс выходит за пределы допустимого диапазона (index < 0 || index >= size())

indexOf

int indexOf(Object o)
Возвращает индекс первого вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент. Точнее, возвращает наименьший индекс i, для которого Objects.equals(o, get(i)), или -1, если такого индекса нет.
Параметры:
o — элемент для поиска
Возвращает:
индекс первого вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент
Вызывает исключение:
ClassCastException — если тип указанного элемента несовместим с этим списком (необязательно)
NullPointerException — если указанный элемент равен null, а этот список не допускает элементы null (необязательно)

lastIndexOf

int lastIndexOf(Object o)
Возвращает индекс последнего вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент. Точнее, возвращает наибольший индекс i, для которого Objects.equals(o, get(i)), или -1, если такого индекса нет.
Параметры:
o — элемент для поиска
Возвращает:
индекс последнего вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент
Вызывает исключение:
ClassCastException — если тип указанного элемента несовместим с этим списком (необязательно)
NullPointerException — если указанный элемент равен null, а этот список не допускает элементы null (необязательно)

listIterator

ListIterator<E> listIterator()
Возвращает list-iterator по элементам этого списка (в надлежащем порядке).
Возвращает:
list-iterator по элементам этого списка (в надлежащем порядке)

listIterator

ListIterator<E> listIterator(int index)
Возвращает list-iterator по элементам этого списка (в надлежащем порядке), начиная с указанной позиции в списке. Указанный индекс обозначает первый элемент, который будет возвращён при первоначальном вызове next. Первоначальный вызов previous вернёт элемент с индексом на единицу меньше указанного.
Параметры:
index — индекс первого элемента, возвращаемого list-iterator (при вызове next)
Возвращает:
list-iterator по элементам этого списка (в надлежащем порядке), начиная с указанной позиции в списке
Вызывает исключение:
IndexOutOfBoundsException — если индекс выходит за пределы допустимого диапазона (index < 0 || index > size())

subList

List<E> subList(int fromIndex, int toIndex)
Возвращает представление части этого списка между указанными fromIndex включительно и toIndex исключительно. (Если fromIndex и toIndex равны, возвращаемый список пуст.) Возвращаемый список основан на этом списке, поэтому неструктурные изменения в возвращаемом списке отражаются в этом списке, и наоборот. Возвращаемый список поддерживает все необязательные операции со списками, поддерживаемые этим списком.

Этот метод позволяет обойтись без явных операций с диапазонами (которые обычно существуют для массивов). Любую операцию, принимающую список, можно использовать как операцию с диапазоном, передав представление subList вместо всего списка. Например, следующий идиоматический фрагмент удаляет диапазон элементов из списка:

     list.subList(from, to).clear();
Подобные идиоматические фрагменты можно составить для indexOf и lastIndexOf, а все алгоритмы класса Collections можно применять к subList.

Семантика списка, возвращаемого этим методом, становится неопределённой, если базовый список (то есть этот список) структурно изменяется каким-либо образом, кроме как через возвращаемый список. (Структурные изменения — это изменения размера этого списка или другие изменения, из-за которых выполняющиеся итерации могут возвращать неверные результаты.)

Параметры:
fromIndex — нижняя граница (включительно) subList
toIndex — верхняя граница (исключительно) subList
Возвращает:
представление указанного диапазона в этом списке
Исключения:
IndexOutOfBoundsException — если значение индекса конечной точки недопустимо (fromIndex < 0 || toIndex > size || fromIndex > toIndex)

spliterator

default Spliterator<E> spliterator()
Создаёт Spliterator для элементов этого списка.

Spliterator сообщает о характеристиках Spliterator.SIZED и Spliterator.ORDERED. В реализациях следует документировать наличие дополнительных характеристик.

Определено в:
spliterator в интерфейсе Collection<E>
Определено в:
spliterator в интерфейсе Iterable<E>
Требования к реализации:
Реализация по умолчанию создаёт поздно связываемый сплитератор следующим образом:
  • Если список является экземпляром RandomAccess, реализация по умолчанию создаёт сплитератор, который перебирает элементы, вызывая метод get(int). Если такой вызов приводит или может привести к IndexOutOfBoundsException, сплитератор завершится с ошибкой (fail-fast) и выбросит ConcurrentModificationException. Если список также является экземпляром AbstractList, сплитератор использует поле списка modCount для дополнительной обработки ошибок по принципу fail-fast.
  • В противном случае реализация по умолчанию создаёт сплитератор на основе Iterator списка. Сплитератор наследует от итератора списка поведение fail-fast.
Примечание по реализации:
Созданный Spliterator также сообщает о характеристике Spliterator.SUBSIZED.
Возвращает:
Spliterator для элементов этого списка
Начиная с:
1.8

addFirst

default void addFirst(E e)
Добавляет элемент в начало этой коллекции (необязательная операция). После успешного завершения этой операции указанный элемент становится частью этой коллекции и первым элементом в порядке обхода.
Определено в:
addFirst в интерфейсе SequencedCollection<E>
Требования к реализации:
Реализация в этом интерфейсе вызывает add(0, e).
Параметры:
e — добавляемый элемент
Исключения:
NullPointerException — если указанный элемент равен null, а эта коллекция не допускает элементы null
UnsupportedOperationException — если реализация этой коллекции не поддерживает данную операцию
Начиная с:
21

addLast

default void addLast(E e)
Добавляет элемент в конец этой коллекции (необязательная операция). После успешного завершения этой операции указанный элемент становится частью этой коллекции и последним элементом в порядке обхода.
Определено в:
addLast в интерфейсе SequencedCollection<E>
Требования к реализации:
Реализация в этом интерфейсе вызывает add(e).
Параметры:
e — добавляемый элемент.
Исключения:
NullPointerException — если указанный элемент равен null, а эта коллекция не допускает элементы null
UnsupportedOperationException — если реализация этой коллекции не поддерживает данную операцию
Начиная с:
21

getFirst

default E getFirst()
Получает первый элемент этой коллекции.
Определено в:
getFirst в интерфейсе SequencedCollection<E>
Требования к реализации:
Если этот список не пуст, реализация в этом интерфейсе возвращает результат вызова get(0). В противном случае она выбрасывает NoSuchElementException.
Возвращает:
полученный элемент
Исключения:
NoSuchElementException — если эта коллекция пуста
Начиная с:
21

getLast

default E getLast()
Получает последний элемент этой коллекции.
Определено в:
getLast в интерфейсе SequencedCollection<E>
Требования к реализации:
Если этот список не пуст, реализация в этом интерфейсе возвращает результат вызова get(size() - 1). В противном случае она выбрасывает NoSuchElementException.
Возвращает:
полученный элемент
Исключения:
NoSuchElementException — если эта коллекция пуста
Начиная с:
21

removeFirst

default E removeFirst()
Удаляет и возвращает первый элемент этой коллекции (необязательная операция).
Определено в:
removeFirst в интерфейсе SequencedCollection<E>
Требования к реализации:
Если этот список не пуст, реализация в этом интерфейсе возвращает результат вызова remove(0). В противном случае она выбрасывает NoSuchElementException.
Возвращает:
удалённый элемент
Исключения:
NoSuchElementException — если эта коллекция пуста
UnsupportedOperationException — если реализация этой коллекции не поддерживает данную операцию
Начиная с:
21

removeLast

default E removeLast()
Удаляет и возвращает последний элемент этой коллекции (необязательная операция).
Определено в:
removeLast в интерфейсе SequencedCollection<E>
Требования к реализации:
Если этот список не пуст, реализация в этом интерфейсе возвращает результат вызова remove(size() - 1). В противном случае она выбрасывает NoSuchElementException.
Возвращает:
удалённый элемент
Исключения:
NoSuchElementException — если эта коллекция пуста
UnsupportedOperationException — если реализация этой коллекции не поддерживает данную операцию
Начиная с:
21

reversed

default List<E> reversed()
Возвращает представление этой коллекции в обратном порядке. Порядок обхода элементов в возвращаемом представлении противоположен порядку обхода элементов в этой коллекции. Обратный порядок влияет на все операции, чувствительные к порядку, включая операции с коллекциями-представлениями возвращаемого представления. Если реализация коллекции допускает изменение этого представления, изменения «передаются» в базовую коллекцию. В зависимости от реализации изменения базовой коллекции могут быть видны или не видны в этом представлении с обратным порядком.
Определено в:
reversed в интерфейсе SequencedCollection<E>
Требования к реализации:
Реализация в этом интерфейсе возвращает представление List в обратном порядке. Метод reversed() этого представления возвращает ссылку на этот List. Другие операции над представлением реализуются посредством вызовов общедоступных методов этого List. Точная связь между вызовами методов представления и вызовами методов этого List не определена. Однако операции, чувствительные к порядку, обычно ведут себя так, как если бы они делегировали вызов соответствующему методу с противоположной ориентацией. Например, вызов getFirst для представления может привести к вызову getLast для этого List.
Возвращает:
представление этой коллекции в обратном порядке в виде List
Начиная с:
21

of

static <E> List<E> of()
Возвращает немодифицируемый список, содержащий ноль элементов. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Возвращает:
пустой List
Начиная с:
9

of

static <E> List<E> of(E e1)
Возвращает немодифицируемый список, содержащий один элемент. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — единственный элемент
Возвращает:
List, содержащий указанный элемент
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2)
Возвращает немодифицируемый список, содержащий два элемента. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2, E e3)
Возвращает немодифицируемый список, содержащий три элемента. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
e3 — третий элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2, E e3, E e4)
Возвращает немодифицируемый список, содержащий четыре элемента. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
e3 — третий элемент
e4 — четвёртый элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2, E e3, E e4, E e5)
Возвращает немодифицируемый список, содержащий пять элементов. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
e3 — третий элемент
e4 — четвёртый элемент
e5 — пятый элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6)
Возвращает немодифицируемый список, содержащий шесть элементов. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
e3 — третий элемент
e4 — четвёртый элемент
e5 — пятый элемент
e6 — шестой элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7)
Возвращает немодифицируемый список, содержащий семь элементов. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
e3 — третий элемент
e4 — четвёртый элемент
e5 — пятый элемент
e6 — шестой элемент
e7 — седьмой элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)
Возвращает немодифицируемый список, содержащий восемь элементов. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
e3 — третий элемент
e4 — четвёртый элемент
e5 — пятый элемент
e6 — шестой элемент
e7 — седьмой элемент
e8 — восьмой элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9)
Возвращает немодифицируемый список, содержащий девять элементов. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
e3 — третий элемент
e4 — четвёртый элемент
e5 — пятый элемент
e6 — шестой элемент
e7 — седьмой элемент
e8 — восьмой элемент
e9 — девятый элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10)
Возвращает немодифицируемый список, содержащий десять элементов. Подробнее см. в разделе Немодифицируемые списки.
Параметры типа:
E — тип элементов List
Параметры:
e1 — первый элемент
e2 — второй элемент
e3 — третий элемент
e4 — четвёртый элемент
e5 — пятый элемент
e6 — шестой элемент
e7 — седьмой элемент
e8 — восьмой элемент
e9 — девятый элемент
e10 — десятый элемент
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null
Начиная с:
9

of

@SafeVarargs static <E> List<E> of(E... elements)
Возвращает немодифицируемый список, содержащий произвольное число элементов. Подробнее см. в разделе Немодифицируемые списки.
Примечание API:
Этот метод также принимает в качестве аргумента один массив. Типом элементов результирующего списка будет тип компонентов массива, а размер списка будет равен длине массива. Чтобы создать список с одним элементом, которым является массив, выполните следующие действия:
    String[] array = ... ;
    List<String[]> list = List.<String[]>of(array);
В этом случае будет вызван метод List.of(E).
Параметры типа:
E — тип элементов List
Параметры:
elements — элементы, которые будут содержаться в списке
Возвращает:
List, содержащий указанные элементы
Исключения:
NullPointerException — если элемент равен null или массив равен null
Начиная с:
9

copyOf

static <E> List<E> copyOf(Collection<? extends E> coll)
Возвращает немодифицируемый List, содержащий элементы указанной Collection в порядке её итерации. Указанная Collection не должна быть null и не должна содержать элементы null. Если указанная Collection впоследствии будет изменена, возвращаемый List не будет отражать эти изменения.
Примечание по реализации:
Если указанная Collection является немодифицируемым List, вызов copyOf обычно не создаёт копию.
Параметры типа:
E — тип элементов List
Параметры:
coll — Collection, из которой берутся элементы; не должна быть null
Возвращает:
List, содержащий элементы указанной Collection
Исключения:
NullPointerException — если coll равен null или содержит значения null
Начиная с:
10

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/List.html

Spec-Zone.ru

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