Интерфейс List<E>
- Параметры типа:
-
E- тип элементов в этом списке
- Все суперинтерфейсы:
- Collection<E>, Iterable<E>
- Все известные реализующие классы:
- AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
public interface List<E> extends Collection<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; некоторые реализации будут проявлять первое поведение, а некоторые — второе. В более общем смысле, попытка выполнения операции с недопустимым элементом, завершение которой не приведет к вставке недопустимого элемента в список, может вызвать исключение или может завершиться успешно, в зависимости от реализации. Такие исключения помечены как «необязательные» в спецификации для данного интерфейса.
Этот интерфейс является частью Java Collections Framework.
- С момента:
- 1.2
- См. также:
-
Collection,Set,ArrayList,LinkedList,Vector,Arrays.asList(Object[]),Collections.nCopies(int, Object),Collections.EMPTY_LIST,AbstractList,AbstractSequentialList
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
add(E e) Добавляет указанный элемент в конец этого списка (необязательная операция). |
void |
add(int index,
E element) Вставляет указанный элемент в указанную позицию в этом списке (необязательная операция). |
boolean |
addAll(Collection<? extends E> c) Добавляет все элементы в указанном множестве в конец этого списка в порядке, в котором они возвращаются итератором указанного множества (необязательная операция). |
boolean |
addAll(int index,
Collection<? extends E> c) Вставляет все элементы в указанном множестве в этот список в указанной позиции (необязательная операция). |
void |
clear() Удаляет все элементы из этого списка (необязательная операция). |
boolean |
contains(Object o) Возвращает |
boolean |
containsAll(Collection<?> c) Возвращает |
boolean |
equals(Object o) Сравнивает указанный объект с этим списком на равенство. |
E |
get(int index) Возвращает элемент в указанной позиции в этом списке. |
int |
hashCode() Возвращает значение хэш-кода для этого списка. |
int |
indexOf(Object o) Возвращает индекс первого вхождения указанного элемента в этот список или -1, если этот список не содержит элемент. |
boolean |
isEmpty() Возвращает |
Iterator<E> |
iterator() Возвращает итератор по элементам в этом списке в правильной последовательности. |
int |
lastIndexOf(Object o) Возвращает индекс последнего вхождения указанного элемента в этот список или -1, если этот список не содержит элемент. |
ListIterator<E> |
listIterator() Возвращает итератор списка по элементам в этом списке (в правильной последовательности). |
ListIterator<E> |
listIterator(int index) Возвращает итератор списка по элементам в этом списке (в правильной последовательности), начиная с указанной позиции в списке. |
E |
remove(int index) Удаляет элемент в указанной позиции в этом списке (необязательная операция). |
boolean |
remove(Object o) Удаляет первое вхождение указанного элемента из этого списка, если он присутствует (необязательная операция). |
boolean |
removeAll(Collection<?> c) Удаляет из этого списка все его элементы, содержащиеся в указанном множестве (необязательная операция). |
default void |
replaceAll(UnaryOperator<E> operator) Заменяет каждый элемент в этом списке результатом применения оператора к этому элементу. |
boolean |
retainAll(Collection<?> c) Оставляет только элементы в этом списке, которые содержатся в указанном множестве (необязательная операция). |
E |
set(int index,
E element) Заменяет элемент в указанной позиции в этом списке указанным элементом (необязательная операция). |
int |
size() Возвращает количество элементов в этом списке. |
default void |
sort(Comparator<? super E> c) Сортирует этот список в соответствии с порядком, заданным указанным |
default Spliterator<E> |
spliterator() Создаёт |
List<E> |
subList(int fromIndex,
int toIndex) Возвращает представление части этого списка между указанным |
Object[] |
toArray() Возвращает массив, содержащий все элементы в этом списке в правильной последовательности (от первого до последнего элемента). |
<T> T[] |
toArray(T[] a) Возвращает массив, содержащий все элементы в этом списке в правильной последовательности (от первого до последнего элемента); тип возвращаемого массива соответствует типу указанного массива. |
Методы, унаследованные от интерфейса java.util.Collection
parallelStream, removeIf, stream Методы, унаследованные от интерфейса java.lang.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 такой, что (o==null ? e==null : o.equals(e)).
- Указано в:
-
containsв интерфейсеCollection<E> - Параметры:
-
o- элемент, присутствие которого в этом списке необходимо проверить - Возвращает:
-
trueесли этот список содержит указанный элемент - Инициирует:
-
ClassCastException- если тип указанного элемента несовместим с этим списком (необязательно) -
NullPointerException- если указанный элемент имеет значение null, а этот список не допускает элементов null (необязательно)
iterator
Iterator<E> iterator()
Возвращает итератор по элементам в этом списке в правильной последовательности.
- Указано в:
-
iteratorв интерфейсеCollection<E> - Указано в:
-
iteratorв интерфейсеIterable<E> - Возвращает:
- итератор по элементам в этом списке в правильной последовательности
toArray
Object[] toArray()
Возвращает массив, содержащий все элементы в этом списке в правильной последовательности (от первого до последнего элемента).
Возвращаемый массив будет «безопасным» в том смысле, что к нему не сохраняются ссылки из этого списка. (Другими словами, этот метод должен выделять новый массив, даже если этот список поддерживается массивом). Таким образом, вызывающий метод свободен изменять возвращаемый массив.
Этот метод действует как мост между основанными на массиве и основанными на коллекции API.
- Указано в:
-
toArrayв интерфейсеCollection<E> - Возвращает:
- массив, содержащий все элементы в этом списке в правильной последовательности
- См. также:
Arrays.asList(Object[])
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 таким, что (o==null ? get(i)==null : o.equals(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 -
IllegalArgumentException- если какое-либо свойство элемента указанной коллекции препятствует его добавлению в этот список -
IndexOutOfBoundsException- если индекс находится вне диапазона (index < 0 || index > size())
removeAll
boolean removeAll(Collection<?> c)
Удаляет из этого списка все его элементы, которые содержатся в указанной коллекции (необязательная операция).
- Указано в:
-
removeAllв интерфейсеCollection<E> - Параметры:
-
c- коллекция, содержащая элементы, которые нужно удалить из этого списка - Возвращает:
-
trueесли этот список изменился в результате вызова - Выбрасывает:
-
UnsupportedOperationException- если операцияremoveAllне поддерживается этим списком -
ClassCastException- если класс элемента этого списка несовместим с указанной коллекцией (необязательно) -
NullPointerException- если этот список содержит нулевой элемент, а указанная коллекция не допускает нулевых элементов (необязательно), или если указанная коллекция равна null - См. также:
-
remove(Object),contains(Object)
retainAll
boolean retainAll(Collection<?> c)
Оставляет в этом списке только те элементы, которые содержатся в указанной коллекции (необязательная операция). Другими словами, удаляет из этого списка все его элементы, которые не содержатся в указанной коллекции.
- Указано в:
-
retainAllв интерфейсеCollection<E> - Параметры:
-
c- коллекция, содержащая элементы, которые нужно сохранить в этом списке - Возвращает:
-
trueесли этот список изменился в результате вызова - Выбрасывает:
-
UnsupportedOperationException- если операцияretainAllне поддерживается этим списком -
ClassCastException- если класс элемента этого списка несовместим с указанной коллекцией (необязательно) -
NullPointerException- если этот список содержит нулевой элемент, а указанная коллекция не допускает нулевых элементов (необязательно), или если указанная коллекция равна 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())); }Если итератор списка не поддерживает операциюset, то при замене первого элемента будет выброшено исключениеUnsupportedOperationException. - Параметры:
-
operator- оператор, который нужно применить к каждому элементу - Выбрасывает:
-
UnsupportedOperationException- если этот список неизменяемый. Реализации могут выбросить это исключение, если элемент нельзя заменить, или если, в общем случае, модификация не поддерживается -
NullPointerException- если указанный оператор равен 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). Она использует методы из статьи Питера МакИлроя "Optimistic Sorting and Information Theoretic Complexity", в Трудах четвертой ежегодной конференции ACM-SIAM по дискретным алгоритмам, стр. 467-474, январь 1993 г.
- Параметры:
-
c- компаратор, используемый для сравнения элементов списка. Значение null указывает, что должен использоваться естественный порядок элементов - Выбрасывает:
-
ClassCastException- если список содержит элементы, которые не являются взаимно сравнимыми с использованием указанного компаратора -
UnsupportedOperationException- если итератор списка не поддерживает операциюset -
IllegalArgumentException- (необязательно) если компаратор нарушает контрактComparator - С:
- 1.8
clear
void clear()
Удаляет все элементы из этого списка (необязательная операция). Список будет пустым после возврата этого вызова.
- Указано в:
-
clearв интерфейсеCollection<E> - Выбрасывает:
-
UnsupportedOperationException- если операцияclearне поддерживается этим списком
equals
boolean equals(Object o)
Сравнивает указанный объект с этим списком на предмет равенства. Возвращает true тогда и только тогда, когда указанный объект также является списком, оба списка имеют одинаковый размер, и все соответствующие пары элементов в двух списках являются равными. (Два элемента e1 и e2 равны, если (e1==null ? e2==null : e1.equals(e2)).) Другими словами, два списка определяются как равные, если они содержат одни и те же элементы в том же порядке. Это определение гарантирует, что метод equals работает правильно для разных реализаций интерфейса List.
- Указано в:
-
equalsв интерфейсеCollection<E> - Переопределяет:
-
equalsв классеObject - Параметры:
-
o- объект, который нужно сравнить на равенство с этим списком - Возвращает:
-
trueесли указанный объект равен этому списку - См. также:
-
Object.hashCode(),HashMap
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 такой, что (o==null ? get(i)==null : o.equals(get(i))), или -1, если такого индекса нет.
- Параметры:
-
o- элемент для поиска - Возвращает:
- индекс первого вхождения указанного элемента в этот список или -1, если этот список не содержит элемент
- Исключение:
-
ClassCastException- если тип указанного элемента несовместим с этим списком (необязательно) -
NullPointerException- если указанный элемент имеет значение null, а данный список не допускает null-элементы (необязательно)
lastIndexOf
int lastIndexOf(Object o)
Возвращает индекс последнего вхождения указанного элемента в этот список, или -1, если этот список не содержит элемент. Более формально, возвращает наибольший индекс i такой, что (o==null ? get(i)==null : o.equals(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 равны, возвращаемый список пустой.) Возвращаемый список поддерживается этим списком, поэтому неструктурные изменения в возвращаемом списке отражаются в этом списке и наоборот. Возвращаемый список поддерживает все необязательные операции списка, поддерживаемые этим списком.
Этот метод устраняет необходимость в явных операциях диапазона (такого рода, которые обычно существуют для массивов). Любая операция, ожидающая список, может быть использована как операция диапазона, передавая представление 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> - Требования к реализации:
- По умолчанию реализация создаёт позднесвязываемый итератор из
Iteratorсписка. Итератор наследует свойства fail-fast итератора списка. - Примечание реализации:
- Созданный
Spliteratorдополнительно сообщаетSpliterator.SUBSIZED. - Возвращает:
Spliteratorнад элементами в этом списке- С:
- 1.8
© 1993, 2020, 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.