Интерфейс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Вставляет указанный элемент в заданную позицию этого списка (необязательная операция). |
boolean |
add |
Добавляет указанный элемент в конец этого списка (необязательная операция). |
boolean |
addAll |
Вставляет все элементы указанной коллекции в этот список, начиная с заданной позиции (необязательная операция). |
boolean |
addAll |
Добавляет все элементы указанной коллекции в конец этого списка в порядке, в котором их возвращает итератор указанной коллекции (необязательная операция). |
default void |
addFirst |
Добавляет элемент в начало этой коллекции (необязательная операция). |
default void |
addLast |
Добавляет элемент в конец этой коллекции (необязательная операция). |
void |
clear() |
Удаляет все элементы из этого списка (необязательная операция). |
boolean |
contains |
Возвращает true, если этот список содержит указанный элемент. |
boolean |
containsAll |
Возвращает true, если этот список содержит все элементы указанной коллекции. |
static <E> List |
copyOf |
Возвращает неизменяемый список, содержащий элементы заданной коллекции в порядке их обхода. |
boolean |
equals |
Сравнивает указанный объект с этим списком на равенство. |
E |
get |
Возвращает элемент, находящийся в указанной позиции этого списка. |
default E |
getFirst() |
Возвращает первый элемент этой коллекции. |
default E |
getLast() |
Возвращает последний элемент этой коллекции. |
int |
hashCode() |
Возвращает значение хеш-кода этого списка. |
int |
indexOf |
Возвращает индекс первого вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент. |
boolean |
isEmpty() |
Возвращает true, если этот список не содержит элементов. |
Iterator |
iterator() |
Возвращает итератор для обхода элементов этого списка в надлежащем порядке. |
int |
lastIndexOf |
Возвращает индекс последнего вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент. |
ListIterator |
listIterator() |
Возвращает итератор списка для обхода элементов этого списка (в надлежащем порядке). |
ListIterator |
listIterator |
Возвращает итератор списка для обхода элементов этого списка (в надлежащем порядке), начиная с заданной позиции. |
static <E> List |
of() |
Возвращает неизменяемый список, содержащий ноль элементов. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий один элемент. |
static <E> List |
of |
Возвращает неизменяемый список с произвольным количеством элементов. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий два элемента. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий три элемента. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий четыре элемента. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий пять элементов. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий шесть элементов. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий семь элементов. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий восемь элементов. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий девять элементов. |
static <E> List |
of |
Возвращает неизменяемый список, содержащий десять элементов. |
E |
remove |
Удаляет элемент, находящийся в указанной позиции этого списка (необязательная операция). |
boolean |
remove |
Удаляет первое вхождение указанного элемента из этого списка, если он присутствует (необязательная операция). |
boolean |
removeAll |
Удаляет из этого списка все элементы, содержащиеся в указанной коллекции (необязательная операция). |
default E |
removeFirst() |
Удаляет и возвращает первый элемент этой коллекции (необязательная операция). |
default E |
removeLast() |
Удаляет и возвращает последний элемент этой коллекции (необязательная операция). |
default void |
replaceAll |
Заменяет каждый элемент этого списка результатом применения оператора к этому элементу (необязательная операция). |
boolean |
retainAll |
Оставляет в этом списке только элементы, содержащиеся в указанной коллекции (необязательная операция). |
default List |
reversed() |
Возвращает представление этой коллекции в обратном порядке. |
E |
set |
Заменяет элемент, находящийся в указанной позиции этого списка, указанным элементом (необязательная операция). |
int |
size() |
Возвращает количество элементов в этом списке. |
default void |
sort |
Сортирует этот список в соответствии с порядком, задаваемым указанным Comparator (необязательная операция). |
default Spliterator |
spliterator() |
Создаёт Spliterator для обхода элементов этого списка. |
List |
subList |
Возвращает представление части этого списка между fromIndex включительно и toIndex исключительно. |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этого списка в надлежащем порядке (от первого элемента к последнему). |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этого списка в надлежащем порядке (от первого элемента к последнему); тип возвращаемого массива во время выполнения совпадает с типом указанного массива. |
Методы, объявленные в интерфейсе Collection
parallelStream, removeIf, stream, toArray
Подробное описание методов
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
toArray
Object[] toArray()
Возвращённый массив является «безопасным»: этот список не хранит на него ссылок. (Иными словами, этот метод должен выделять новый массив, даже если список основан на массиве.) Поэтому вызывающий код может свободно изменять возвращённый массив.
Этот метод служит связующим звеном между API на основе массивов и API на основе коллекций.
- Определено в:
-
toArrayв интерфейсеCollection<E> - Возвращает:
- массив, содержащий все элементы этого списка в надлежащем порядке
- См. также:
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 - См. также:
addAll
boolean addAll(Collection<? extends E> c)
- Определено в:
-
addAllв интерфейсеCollection<E> - Параметры:
-
c— коллекция, содержащая элементы, которые нужно добавить в этот список - Возвращает:
-
true, если этот список изменился в результате вызова - Вызывает исключение:
-
UnsupportedOperationException— если операцияaddAllне поддерживается данным списком -
ClassCastException— если класс элемента указанной коллекции не позволяет добавить его в этот список -
NullPointerException— если указанная коллекция содержит один или несколько элементов null, а этот список не допускает элементы null, или если указанная коллекция равна null -
IllegalArgumentException— если какое-либо свойство элемента указанной коллекции не позволяет добавить его в этот список - См. также:
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 - См. также:
retainAll
boolean retainAll(Collection<?> c)
- Определено в:
-
retainAllв интерфейсеCollection<E> - Параметры:
-
c— коллекция, содержащая элементы, которые нужно оставить в этом списке - Возвращает:
-
true, если этот список изменился в результате вызова - Вызывает исключение:
-
UnsupportedOperationException— если операцияretainAllне поддерживается данным списком -
ClassCastException— если класс элемента этого списка несовместим с указанной коллекцией (необязательно) -
NullPointerException— если этот список содержит элемент null, а указанная коллекция не допускает элементы null (необязательно), или если указанная коллекция равна null - См. также:
replaceAll
default void replaceAll(UnaryOperator<E> operator)
- Требования к реализации:
- Реализация по умолчанию эквивалентна следующему коду для этого
list:
Если list-iterator списка не поддерживает операциюfinal ListIterator<E> li = list.listIterator(); while (li.hasNext()) { li.set(operator.apply(li.next())); }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, если указанный объект равен этому списку - См. также:
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 - Возвращает:
- хеш-код этого списка
- См. также:
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)
i, для которого Objects.equals(o, get(i)), или -1, если такого индекса нет.- Параметры:
-
o— элемент для поиска - Возвращает:
- индекс первого вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент
- Вызывает исключение:
-
ClassCastException— если тип указанного элемента несовместим с этим списком (необязательно) -
NullPointerException— если указанный элемент равен null, а этот список не допускает элементы null (необязательно)
lastIndexOf
int lastIndexOf(Object o)
i, для которого Objects.equals(o, get(i)), или -1, если такого индекса нет.- Параметры:
-
o— элемент для поиска - Возвращает:
- индекс последнего вхождения указанного элемента в этом списке или -1, если список не содержит этот элемент
- Вызывает исключение:
-
ClassCastException— если тип указанного элемента несовместим с этим списком (необязательно) -
NullPointerException— если указанный элемент равен null, а этот список не допускает элементы null (необязательно)
listIterator
ListIterator<E> listIterator()
- Возвращает:
- list-iterator по элементам этого списка (в надлежащем порядке)
listIterator
ListIterator<E> listIterator(int index)
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)
- Примечание по реализации:
- Если указанная Collection является немодифицируемым List, вызов copyOf обычно не создаёт копию.
- Параметры типа:
E— тип элементовList- Параметры:
-
coll—Collection, из которой берутся элементы; не должна быть null - Возвращает:
List, содержащий элементы указаннойCollection- Исключения:
-
NullPointerException— если coll равен null или содержит значения null - Начиная с:
- 10
© 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