Список интерфейсов<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), и они обычно допускают несколько нулевых элементов, если вообще допускают нулевые элементы. Нельзя исключать, что кто-то захочет реализовать список, запрещающий дублирование, выбрасывая исключения времени выполнения, когда пользователь пытается их вставить, но мы ожидаем, что такое использование будет редким.
Интерфейс List накладывает дополнительные условия, помимо тех, что указаны в интерфейсе Collection, на контракты методов iterator, add, remove, equals и hashCode. Объявления других унаследованных методов также включены сюда для удобства.
Интерфейс List предоставляет четыре метода для позиционного (индексированного) доступа к элементам списка. Списки (как массивы Java) нумеруются с нуля. Обратите внимание, что эти операции могут выполняться за время, пропорциональное значению индекса, для некоторых реализаций (например, класс LinkedList). Поэтому итерация по элементам списка обычно предпочтительнее индексирования через него, если вызывающий код не знает реализации.
Интерфейс List предоставляет специальный итератор, называемый ListIterator, который позволяет вставлять и заменять элементы, а также осуществлять двусторонний доступ помимо обычных операций, предоставляемых интерфейсом Iterator. Предоставляется метод для получения итератора списка, начинающегося в указанной позиции в списке.
Интерфейс List предоставляет два метода для поиска указанного объекта. С точки зрения производительности, эти методы следует использовать с осторожностью. Во многих реализациях они будут выполнять дорогостоящий линейный поиск.
Интерфейс List предоставляет два метода для эффективной вставки и удаления нескольких элементов в произвольной точке списка.
Примечание: хотя списки могут содержать сами себя в качестве элементов, настоятельно рекомендуется проявлять крайнюю осторожность: методы equals и hashCode больше не определены корректно для такого списка.
В некоторых реализациях списков есть ограничения на элементы, которые они могут содержать. Например, некоторые реализации запрещают нулевые элементы, а некоторые имеют ограничения на типы своих элементов. Попытка добавить недопустимый элемент вызывает неконтролируемое исключение, обычно NullPointerException или ClassCastException. Попытка запросить наличие недопустимого элемента может вызвать исключение или просто вернуть false; некоторые реализации будут проявлять первое поведение, а некоторые – второе. В более общем случае, попытка выполнить операцию с недопустимым элементом, завершение которой не приведет к вставке недопустимого элемента в список, может вызвать исключение или завершиться успешно по выбору реализации. Такие исключения отмечены как «необязательные» в спецификации этого интерфейса.
Неизменяемые списки
Статические фабричные методы List.of и List.copyOf предоставляют удобный способ создания неизменяемых списков. Экземпляры List, созданные этими методами, имеют следующие характеристики:
- Они являются неизменяемыми. Элементы нельзя добавлять, удалять или заменять. Вызов любого метода-мутатора для списка всегда вызывает исключение
UnsupportedOperationException. Однако, если содержащиеся элементы сами по себе изменяемы, это может привести к тому, что содержимое списка, кажется, изменится. - Они не допускают
nullэлементов. Попытки создать их сnullэлементами приводят к исключениюNullPointerException. - Они сериализуемы, если все элементы сериализуемы.
- Порядок элементов в списке совпадает с порядком предоставленных аргументов или элементов в предоставленном массиве.
- Списки и их
subListпредставления реализуют интерфейсRandomAccess. - Они являются значение-ориентированными. Программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать их для синхронизации, так как это может привести к непредсказуемому поведению. Например, в будущей версии синхронизация может завершиться неудачей. Вызывающий код не должен делать предположений о тождестве возвращенных экземпляров. Фабрики свободны создавать новые экземпляры или повторно использовать существующие.
- Они сериализуются, как указано на странице Сериализованной формы.
Этот интерфейс является членом Java Коллекций.
- С:
- 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 |
Возвращает массив, содержащий все элементы в этом списке в правильном порядке (от первого до последнего элемента); тип возвращаемого массива соответствует типу указанного массива. |
Методы, объявленные в интерфейсе java.util.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.
- Указано:
-
toArrayв интерфейсеCollection<E> - Возвращает:
- массив, содержащий все элементы этого списка в правильной последовательности
- См. также:
toArray
<T> T[] toArray(T[] a)
Если список помещается в указанный массив с избытком места (т. е. массив содержит больше элементов, чем список), элемент в массиве сразу после конца списка устанавливается в null. (Это полезно для определения длины списка *только* если вызывающая сторона знает, что список не содержит null-элементов.)
Как и метод toArray(), этот метод выполняет роль моста между основанными на массивах и основанными на коллекциях 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 -
IllegalArgumentException- если какое-либо свойство элемента указанного набора препятствует его добавлению в этот список -
IndexOutOfBoundsException- если индекс находится вне допустимого диапазона (index < 0 || index > size())
removeAll
boolean removeAll(Collection<?> c)
- Определено в:
-
removeAllв интерфейсеCollection<E> - Параметры:
-
c- набор, содержащий элементы, которые нужно удалить из этого списка - Возвращает:
-
true, если этот список изменился в результате вызова - Исключения:
-
UnsupportedOperationException- если операцияremoveAllне поддерживается этим списком -
ClassCastException- если класс элемента этого списка несовместим с указанным набором (необязательно) -
NullPointerException- если этот список содержит нулевой элемент, а указанный набор не допускает нулевых элементов (необязательно), или если указанный набор равен null - См. также:
retainAll
boolean retainAll(Collection<?> c)
- Определено в:
-
retainAllв интерфейсеCollection<E> - Параметры:
-
c- набор, содержащий элементы, которые нужно сохранить в этом списке - Возвращает:
-
true, если этот список изменился в результате вызова - Исключения:
-
UnsupportedOperationException- если операцияretainAllне поддерживается этим списком -
ClassCastException- если класс элемента этого списка несовместим с указанным набором (необязательно) -
NullPointerException- если этот список содержит нулевой элемент, а указанный набор не допускает нулевых элементов (необязательно), или если указанный набор равен null - См. также:
replaceAll
default void replaceAll(UnaryOperator<E> operator)
- Требования к реализации:
- Стандартная реализация эквивалентна для этого
list:
Если итератор списка не поддерживает операцию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 ссылок на объекты для случайных входных массивов.
Реализация одинаково использует возрастающий и убывающий порядок в входном массиве и может использовать возрастающий и убывающий порядок в разных частях одного входного массива. Она хорошо подходит для слияния двух или более отсортированных массивов: просто конкатенируйте массивы и отсортируйте полученный массив.
Реализация адаптирована из сортировки списков Tim Peters для Python ( TimSort). Она использует техники из "Optimistic Sorting and Information Theoretic Complexity" Питера МакИлроя, в Proceedings of the Fourth Annual ACM-SIAM Symposium on Discrete Algorithms, страницы 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()
- Возвращает:
- итератор списка по элементам в этом списке (в правильном порядке)
listIterator
ListIterator<E> listIterator(int index)
next. Начальный вызов previous вернёт элемент с индексом, уменьшенным на единицу.- Параметры:
-
index- индекс первого элемента, который будет возвращён итератором списка (в результате вызоваnext) - Возвращает:
- итератор списка по элементам в этом списке (в правильном порядке), начиная с указанной позиции в списке
- Исключения:
-
IndexOutOfBoundsException- если индекс вне допустимого диапазона (index < 0 || index > size())
subList
List<E> subList(int fromIndex, int toIndex)
fromIndex, включительно, и toIndex, не включительно. (Если fromIndex и toIndex равны, возвращаемый список пустой.) Возвращаемый список поддерживается этим списком, поэтому неструктурные изменения в возвращаемом списке отражаются в этом списке и наоборот. Возвращаемый список поддерживает все необязательные операции списка, поддерживаемые этим списком. Этот метод исключает необходимость явных операций с диапазонами (того вида, которые обычно существуют для массивов). Любая операция, ожидающая список, может быть использована как операция с диапазоном, передав представление подсписка вместо целого списка. Например, следующая идиома удаляет диапазон элементов из списка:
list.subList(from, to).clear();
Аналогичные идиомы могут быть построены для indexOf и lastIndexOf, и все алгоритмы в классе Collections могут быть применены к подсписку. Семантика списка, возвращённого этим методом, становится неопределённой, если базовый список (т. е. этот список) каким-либо образом модифицируется структурно, кроме как через возвращаемый список. (Структурные модификации — это те, которые изменяют размер этого списка или иным образом нарушают его таким образом, что итерации в процессе могут привести к некорректным результатам).
- Параметры:
-
fromIndex- нижняя граница (включительно) подсписка -
toIndex- верхняя граница (исключительно) подсписка - Возвращает:
- представление указанного диапазона в этом списке
- Исключения:
-
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, то спитерратор будет немедленно завершён и сгенерирует исключениеConcurrentModificationException. Если список также является экземпляромAbstractList, то спитерратор будет использовать поле спискаmodCountдля обеспечения дополнительного поведения немедленного завершения. - В противном случае по умолчанию реализация создаёт спитерратор из
Iteratorсписка. Спитерратор наследует немедленное завершение итератора списка.
- Если список является экземпляром
- Примечание реализации:
- Созданный
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> - Требования к реализации:
- Реализация в этом интерфейсе возвращает представление списка в обратном порядке. Метод
reversed()представления возвращает ссылку на этот список. Другие операции над представлением реализуются через вызовы публичных методов этого списка. Точное соотношение между вызовами представления и вызовами этого списка не определено. Однако операции, чувствительные к порядку, обычно ведут себя так, как будто они делегируют соответствующему методу с противоположной ориентацией. Например, вызовgetFirstна представлении может привести к вызовуgetLastна этом списке. - Возвращает:
- представление этой коллекции в обратном порядке, как
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)
- Type Parameters:
E- тип элементаList- Parameters:
-
e1- первый элемент -
e2- второй элемент -
e3- третий элемент - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnull - Since:
- 9
of
static <E> List<E> of(E e1, E e2, E e3, E e4)
- Type Parameters:
E- тип элементаList- Parameters:
-
e1- первый элемент -
e2- второй элемент -
e3- третий элемент -
e4- четвертый элемент - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnull - Since:
- 9
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5)
- Type Parameters:
E- тип элементаList- Parameters:
-
e1- первый элемент -
e2- второй элемент -
e3- третий элемент -
e4- четвертый элемент -
e5- пятый элемент - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnull - Since:
- 9
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6)
- Type Parameters:
E- тип элементаList- Parameters:
-
e1- первый элемент -
e2- второй элемент -
e3- третий элемент -
e4- четвертый элемент -
e5- пятый элемент -
e6- шестой элемент - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnull - Since:
- 9
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7)
- Type Parameters:
E- тип элементаList- Parameters:
-
e1- первый элемент -
e2- второй элемент -
e3- третий элемент -
e4- четвертый элемент -
e5- пятый элемент -
e6- шестой элемент -
e7- седьмой элемент - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnull - Since:
- 9
of
static <E> List<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)
- Type Parameters:
E- тип элементаList- Parameters:
-
e1- первый элемент -
e2- второй элемент -
e3- третий элемент -
e4- четвертый элемент -
e5- пятый элемент -
e6- шестой элемент -
e7- седьмой элемент -
e8- восьмой элемент - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnull - Since:
- 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)
- Type Parameters:
E- тип элементаList- Parameters:
-
e1- первый элемент -
e2- второй элемент -
e3- третий элемент -
e4- четвертый элемент -
e5- пятый элемент -
e6- шестой элемент -
e7- седьмой элемент -
e8- восьмой элемент -
e9- девятый элемент - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnull - Since:
- 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)
- Type Parameters:
E- тип элементаList- Parameters:
-
e1- первый элемент -
e2- второй элемент -
e3- третий элемент -
e4- четвертый элемент -
e5- пятый элемент -
e6- шестой элемент -
e7- седьмой элемент -
e8- восьмой элемент -
e9- девятый элемент -
e10- десятый элемент - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnull - Since:
- 9
of
@SafeVarargs static <E> List<E> of(E... elements)
- API Note:
- Этот метод также принимает один массив в качестве аргумента. Тип элемента результирующего списка будет типом компонента массива, а размер списка будет равен длине массива. Для создания списка с одним элементом, являющимся массивом, выполните следующие действия:
Это вызовет методString[] array = ... ; List<String[]> list = List.<String[]>of(array);List.of(E)вместо этого. - Type Parameters:
E- тип элементаList- Parameters:
-
elements- элементы, которые должны содержаться в списке - Returns:
- a
List, содержащий указанные элементы - Throws:
-
NullPointerException- если элемент являетсяnullили если массив являетсяnull - Since:
- 9
copyOf
static <E> List<E> copyOf(Collection<? extends E> coll)
- Замечание по реализации:
- Если заданный набор является неизменяемым списком, вызов copyOf обычно не создаёт копию.
- Параметры типа:
E- тип элементовList- Параметры:
-
coll- набор, из которого берутся элементы, не должен быть null - Возвращает:
- список, содержащий элементы заданного набора
- Исключения:
-
NullPointerException- если coll 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/List.html