Spec-Zone.ru › OpenJDK 21

Класс CopyOnWriteArrayList<E>

java.lang.Object
java.util.concurrent.CopyOnWriteArrayList<E>
Type Parameters:
E - тип элементов, хранящихся в этом списке
Все реализуемые интерфейсы:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess, SequencedCollection<E>
public class CopyOnWriteArrayList<E> extends Object implements List<E>, RandomAccess, Cloneable, Serializable
Потокобезопасная версия ArrayList, в которой все изменяющие операции (add, set, и так далее) реализуются путём создания новой копии базового массива.

Это обычно слишком дорого, но может быть более эффективным, чем альтернативы, когда операции обхода значительно превосходят по числу операции изменения, и полезно, когда вы не можете или не хотите синхронизировать обходы, но вам нужно предотвратить вмешательство между одновременными потоками. Метод итератора "снимок" использует ссылку на состояние массива на тот момент, когда итератор был создан. Этот массив никогда не меняется в течение времени жизни итератора, поэтому вмешательство невозможно, и итератор гарантированно не сгенерирует ConcurrentModificationException. Итератор не будет отражать добавления, удаления или изменения в списке после создания итератора. Операции изменения элементов в самих итераторах (remove, set, и add) не поддерживаются. Эти методы генерируют UnsupportedOperationException.

Все элементы разрешены, включая null.

Эффекты согласованности памяти: Как и в других коллекциях с конкурентным доступом, действия в потоке до размещения объекта в CopyOnWriteArrayList происходят-до последующих действий по доступу или удалению этого элемента из CopyOnWriteArrayList в другом потоке.

Этот класс является членом Java Collections Framework.

Since:
1.5
See Also:
  • Сериализованная форма

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

Конструктор Описание
CopyOnWriteArrayList()
Создаёт пустой список.
CopyOnWriteArrayList(E[] toCopyIn)
Создаёт список, содержащий копию заданного массива.
CopyOnWriteArrayList(Collection<? extends E> c)
Создаёт список, содержащий элементы заданного набора в порядке их возвращения итератором этого набора.

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

Модификатор и тип Метод Описание
void add(int index, E element)
Вставляет указанный элемент в указанную позицию в этом списке.
boolean add(E e)
Добавляет указанный элемент в конец этого списка.
boolean addAll(int index, Collection<? extends E> c)
Вставляет все элементы указанного набора в этот список, начиная с указанной позиции.
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанного набора в конец этого списка в порядке, в котором они возвращаются итератором указанного набора.
int addAllAbsent(Collection<? extends E> c)
Добавляет все элементы указанного набора, которые ещё не содержатся в этом списке, в конец этого списка в порядке, в котором они возвращаются итератором указанного набора.
void addFirst(E e)
Добавляет элемент в качестве первого элемента этого набора (необязательная операция).
boolean addIfAbsent(E e)
Добавляет элемент, если он отсутствует.
void addLast(E e)
Добавляет элемент в качестве последнего элемента этого набора (необязательная операция).
void clear()
Удаляет все элементы из этого списка.
Object clone()
Возвращает поверхностную копию этого списка.
boolean contains(Object o)
Возвращает true, если этот список содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает true, если этот список содержит все элементы указанного набора.
boolean equals(Object o)
Сравнивает указанный объект с этим списком на равенство.
void forEach(Consumer<? super E> action)
Выполняет заданное действие для каждого элемента Iterable, пока все элементы не будут обработаны или действие не выбросит исключение.
E get(int index)
Возвращает элемент в указанной позиции в этом списке.
E getFirst()
Возвращает первый элемент этого набора.
E getLast()
Возвращает последний элемент этого набора.
int hashCode()
Возвращает значение хэш-кода для этого списка.
int indexOf(E e, int index)
Возвращает индекс первого вхождения указанного элемента в этом списке, выполняя поиск вперёд с index, или возвращает -1, если элемент не найден.
int indexOf(Object o)
Возвращает индекс первого вхождения указанного элемента в этом списке, или -1, если в этом списке нет элемента.
boolean isEmpty()
Возвращает true, если этот список не содержит элементов.
Iterator<E> iterator()
Возвращает итератор по элементам этого списка в правильной последовательности.
int lastIndexOf(E e, int index)
Возвращает индекс последнего вхождения указанного элемента в этом списке, выполняя поиск назад с index, или возвращает -1, если элемент не найден.
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)
Удаляет из этого списка все его элементы, которые содержатся в указанном наборе.
E removeFirst()
Удаляет и возвращает первый элемент этого набора (необязательная операция).
boolean removeIf(Predicate<? super E> filter)
Удаляет все элементы этого набора, удовлетворяющие данному предикату.
E removeLast()
Удаляет и возвращает последний элемент этого набора (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет только элементы в этом списке, которые содержатся в указанном наборе.
List<E> reversed()
Возвращает представление этого набора в обратном порядке.
E set(int index, E element)
Заменяет элемент в указанной позиции в этом списке указанным элементом.
int size()
Возвращает количество элементов в этом списке.
Spliterator<E> spliterator()
Возвращает Spliterator по элементам в этом списке.
List<E> subList(int fromIndex, int toIndex)
Возвращает представление части этого списка между fromIndex, включительно, и toIndex, исключая.
Object[] toArray()
Возвращает массив, содержащий все элементы этого списка в правильной последовательности (от первого до последнего элемента).
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого списка в правильной последовательности (от первого до последнего элемента); тип времени выполнения возвращаемого массива — тип указанного массива.
String toString()
Возвращает строковое представление этого списка.

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

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

parallelStream, stream, toArray

Методы, объявленные в интерфейсе java.util.List

replaceAll, sort

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

CopyOnWriteArrayList

public CopyOnWriteArrayList()
Создаёт пустой список.

CopyOnWriteArrayList

public CopyOnWriteArrayList(Collection<? extends E> c)
Создаёт список, содержащий элементы указанной коллекции, в том порядке, в котором они возвращаются итератором коллекции.
Параметры:
c - коллекция изначально содержащихся элементов
Исключения:
NullPointerException - если указанная коллекция равна null

CopyOnWriteArrayList

public CopyOnWriteArrayList(E[] toCopyIn)
Создаёт список, содержащий копию данного массива.
Параметры:
toCopyIn - массив (копия этого массива используется как внутренний массив)
Исключения:
NullPointerException - если указанный массив равен null

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

size

public int size()
Возвращает количество элементов в этом списке.
Указано в:
size в интерфейсе Collection<E>
Указано в:
size в интерфейсе List<E>
Возвращает:
количество элементов в этом списке

isEmpty

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

contains

public boolean contains(Object o)
Возвращает true если этот список содержит указанный элемент. Более формально, возвращает true тогда и только тогда, когда этот список содержит хотя бы один элемент e такой, что Objects.equals(o, e).
Указано в:
contains в интерфейсе Collection<E>
Указано в:
contains в интерфейсе List<E>
Параметры:
o - элемент, наличие которого в этом списке необходимо проверить
Возвращает:
true если этот список содержит указанный элемент

indexOf

public int indexOf(Object o)
Возвращает индекс первого вхождения указанного элемента в этот список, или -1, если этот список не содержит элемент. Более формально, возвращает наименьший индекс i такой, что Objects.equals(o, get(i)), или -1, если такого индекса нет.
Указано в:
indexOf в интерфейсе List<E>
Параметры:
o - элемент для поиска
Возвращает:
индекс первого вхождения указанного элемента в этом списке, или -1, если этот список не содержит элемент

indexOf

public int indexOf(E e, int index)
Возвращает индекс первого вхождения указанного элемента в этот список, выполняя поиск вперёд с index, или возвращает -1, если элемент не найден. Более формально, возвращает наименьший индекс i такой, что i >= index && Objects.equals(get(i), e), или -1, если такого индекса нет.
Параметры:
e - элемент для поиска
index - индекс, с которого начать поиск
Возвращает:
индекс первого вхождения элемента в этом списке в позиции index или позже в списке; -1 если элемент не найден.
Исключения:
IndexOutOfBoundsException - если указанный индекс отрицателен

lastIndexOf

public int lastIndexOf(Object o)
Возвращает индекс последнего вхождения указанного элемента в этот список, или -1, если этот список не содержит элемент. Более формально, возвращает наибольший индекс i такой, что Objects.equals(o, get(i)), или -1, если такого индекса нет.
Указано в:
lastIndexOf в интерфейсе List<E>
Параметры:
o - элемент для поиска
Возвращает:
индекс последнего вхождения указанного элемента в этом списке, или -1, если этот список не содержит элемент

lastIndexOf

public int lastIndexOf(E e, int index)
Возвращает индекс последнего вхождения указанного элемента в этот список, выполняя поиск назад с index, или возвращает -1, если элемент не найден. Более формально, возвращает наибольший индекс i такой, что i <= index && Objects.equals(get(i), e), или -1, если такого индекса нет.
Параметры:
e - элемент для поиска
index - индекс, с которого начать обратный поиск
Возвращает:
индекс последнего вхождения элемента в позиции меньше или равно index в этом списке; -1, если элемент не найден.
Исключения:
IndexOutOfBoundsException - если указанный индекс больше или равен текущему размеру этого списка

clone

public Object clone()
Возвращает неглубокую копию этого списка. (Сами элементы не копируются.)
Переопределяет:
clone в классе Object
Возвращает:
клон этого списка
См. также:
  • Cloneable

toArray

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

Возвращаемый массив будет "безопасным" в том смысле, что никакие ссылки на него не поддерживаются этим списком. (Другими словами, этот метод должен выделить новый массив). Таким образом, вызывающий абонент может свободно изменять возвращаемый массив.

Этот метод выступает в качестве моста между API на основе массивов и API на основе коллекций.

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

toArray

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

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

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

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

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

get

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

getFirst

public E getFirst()
Получает первый элемент этой коллекции.
Указано в:
getFirst в интерфейсе List<E>
Указано в:
getFirst в интерфейсе SequencedCollection<E>
Возвращает:
извлечённый элемент
Исключения:
NoSuchElementException - если эта коллекция пуста
С версии:
21

getLast

public E getLast()
Получает последний элемент этого набора.
Указано в:
getLast в интерфейсе List<E>
Указано в:
getLast в интерфейсе SequencedCollection<E>
Возвращает:
полученный элемент
Исключение:
NoSuchElementException - если этот набор пуст
С:
21

set

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

add

public boolean add(E e)
Добавляет указанный элемент в конец этого списка.
Указано в:
add в интерфейсе Collection<E>
Указано в:
add в интерфейсе List<E>
Параметры:
e - элемент, который нужно добавить в конец этого списка
Возвращает:
true (как указано в Collection.add(E))

add

public void add(int index, E element)
Вставляет указанный элемент в указанную позицию в этом списке. Сдвигает элемент, который в данный момент находится в этой позиции (если есть), и все последующие элементы вправо (увеличивает их индексы на 1).
Указано в:
add в интерфейсе List<E>
Параметры:
index - индекс, в который нужно вставить указанный элемент
element - элемент, который нужно вставить
Исключение:
IndexOutOfBoundsException - если индекс выходит за пределы допустимого диапазона (index < 0 || index > size())

addFirst

public void addFirst(E e)
Добавляет элемент как первый элемент этого набора (необязательная операция). После нормального завершения этой операции, данный элемент станет членом этого набора, и он будет первым элементом в порядке обхода.
Указано в:
addFirst в интерфейсе List<E>
Указано в:
addFirst в интерфейсе SequencedCollection<E>
Параметры:
e - элемент, который нужно добавить
С:
21

addLast

public void addLast(E e)
Добавляет элемент как последний элемент этого набора (необязательная операция). После нормального завершения этой операции, данный элемент станет членом этого набора, и он будет последним элементом в порядке обхода.
Указано в:
addLast в интерфейсе List<E>
Указано в:
addLast в интерфейсе SequencedCollection<E>
Параметры:
e - добавляемый элемент.
С:
21

remove

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

removeFirst

public E removeFirst()
Удаляет и возвращает первый элемент этого набора (необязательная операция).
Указано в:
removeFirst в интерфейсе List<E>
Указано в:
removeFirst в интерфейсе SequencedCollection<E>
Возвращает:
удаленный элемент
Исключение:
NoSuchElementException - если этот набор пуст
С:
21

removeLast

public E removeLast()
Удаляет и возвращает последний элемент этого набора (необязательная операция).
Указано в:
removeLast в интерфейсе List<E>
Указано в:
removeLast в интерфейсе SequencedCollection<E>
Возвращает:
удаленный элемент
Исключение:
NoSuchElementException - если этот набор пуст
С:
21

remove

public boolean remove(Object o)
Удаляет первое вхождение указанного элемента из этого списка, если оно присутствует. Если этот список не содержит элемент, он не изменяется. Более формально, удаляет элемент с наименьшим индексом i такой, что Objects.equals(o, get(i)) (если такой элемент существует). Возвращает true если этот список содержал указанный элемент (или эквивалентно, если этот список изменился в результате вызова).
Указано в:
remove в интерфейсе Collection<E>
Указано в:
remove в интерфейсе List<E>
Параметры:
o - элемент, который нужно удалить из этого списка, если он присутствует
Возвращает:
true если этот список содержал указанный элемент

addIfAbsent

public boolean addIfAbsent(E e)
Добавляет элемент, если он отсутствует.
Параметры:
e - элемент, который нужно добавить в этот список, если его нет
Возвращает:
true если элемент был добавлен

containsAll

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

removeAll

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

retainAll

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

addAllAbsent

public int addAllAbsent(Collection<? extends E> c)
Добавляет все элементы в указанном наборе, которые ещё не содержатся в этом списке, в конец этого списка в порядке, в котором они возвращаются итератором указанного набора.
Параметры:
c - набор, содержащий элементы, которые нужно добавить в этот список
Возвращает:
количество добавленных элементов
Исключение:
NullPointerException - если указанный набор равен null
См. также:
  • addIfAbsent(Object)

clear

public void clear()
Удаляет все элементы из этого списка. После этого вызова список будет пустым.
Указано в:
clear в интерфейсе Collection<E>
Указано в:
clear в интерфейсе List<E>

addAll

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

addAll

public boolean addAll(int index, Collection<? extends E> c)
Вставляет все элементы из указанного набора в этот список, начиная с указанной позиции. Сдвигает элемент, который в данный момент находится на этой позиции (если таковой есть), и все последующие элементы вправо (увеличивает их индексы). Новые элементы будут отображаться в этом списке в том порядке, в котором они возвращаются итератором указанного набора.
Указано в:
addAll в интерфейсе List<E>
Параметры:
index - индекс, с которого следует вставить первый элемент из указанного набора
c - набор, содержащий элементы, которые нужно добавить в этот список
Возвращает:
true если этот список изменился в результате вызова
Исключения:
IndexOutOfBoundsException - если индекс находится вне диапазона (index < 0 || index > size())
NullPointerException - если указанный набор равен null
См. также:
  • add(int,Object)

forEach

public void forEach(Consumer<? super E> action)
Описание скопировано из интерфейса: Iterable
Выполняет заданное действие для каждого элемента Iterable до тех пор, пока все элементы не будут обработаны или действие не выбросит исключение. Действия выполняются в порядке итерации, если этот порядок задан. Исключения, выброшенные действием, передаются вызывающему объекту.

Поведение этого метода не определено, если действие выполняет побочные эффекты, которые изменяют базовый источник элементов, если только переопределяемый класс не указал политику одновременного изменения.

Указано в:
forEach в интерфейсе Iterable<E>
Параметры:
action - действие, которое нужно выполнить для каждого элемента
Исключения:
NullPointerException - если указанное действие равно null

removeIf

public boolean removeIf(Predicate<? super E> filter)
Описание скопировано из интерфейса: Collection
Удаляет все элементы этого набора, которые удовлетворяют заданному предикату. Ошибки или исключения времени выполнения, выброшенные во время итерации или предикатом, передаются вызывающему объекту.
Указано в:
removeIf в интерфейсе Collection<E>
Параметры:
filter - предикат, который возвращает true для элементов, которые нужно удалить
Возвращает:
true если какие-либо элементы были удалены
Исключения:
NullPointerException - если указанный фильтр равен null

toString

public String toString()
Возвращает строковое представление этого списка. Строковое представление состоит из строковых представлений элементов списка в порядке их возврата итератором, заключенных в квадратные скобки ("[]"). Смежные элементы разделены символами ", " (запятая и пробел). Элементы преобразуются в строки по аналогии с String.valueOf(Object).
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого списка

equals

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

hashCode

public int hashCode()
Возвращает значение хэш-кода для этого списка.

Это реализация использует определение в List.hashCode().

Указано в:
hashCode в интерфейсе Collection<E>
Указано в:
hashCode в интерфейсе List<E>
Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого списка
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

iterator

public Iterator<E> iterator()
Возвращает итератор по элементам в этом списке в правильном порядке.

Возвращаемый итератор предоставляет моментальный снимок состояния списка в момент создания итератора. Синхронизация не требуется во время перебора итератора. Итератор НЕ поддерживает метод remove.

Указано в:
iterator в интерфейсе Collection<E>
Указано в:
iterator в интерфейсе Iterable<E>
Указано в:
iterator в интерфейсе List<E>
Возвращает:
итератор по элементам в этом списке в правильном порядке

listIterator

public ListIterator<E> listIterator()
Возвращает итератор списка по элементам в этом списке (в правильном порядке).

Возвращаемый итератор предоставляет моментальный снимок состояния списка в момент создания итератора. Синхронизация не требуется во время перебора итератора. Итератор НЕ поддерживает методы remove, set или add.

Указано в:
listIterator в интерфейсе List<E>
Возвращает:
итератор списка по элементам в этом списке (в правильном порядке)

listIterator

public ListIterator<E> listIterator(int index)
Возвращает итератор списка по элементам в этом списке (в правильном порядке), начиная с указанной позиции в списке. Указанный индекс указывает первый элемент, который будет возвращен при первом вызове next. Первый вызов previous вернет элемент с индексом, на единицу меньшим указанного.

Возвращаемый итератор предоставляет моментальный снимок состояния списка в момент создания итератора. Синхронизация не требуется во время перебора итератора. Итератор НЕ поддерживает методы remove, set или add.

Указано в:
listIterator в интерфейсе List<E>
Параметры:
index - индекс первого элемента, который должен быть возвращен итератором списка (вызовом next)
Возвращает:
итератор списка по элементам в этом списке (в правильном порядке), начиная с указанной позиции в списке
Исключения:
IndexOutOfBoundsException - если индекс находится вне диапазона (index < 0 || index > size())

spliterator

public Spliterator<E> spliterator()
Возвращает Spliterator над элементами в этом списке.

Spliterator сообщает о Spliterator.IMMUTABLE, Spliterator.ORDERED, Spliterator.SIZED и Spliterator.SUBSIZED.

Spliterator предоставляет моментальную фотографию состояния списка на момент создания spliterator. При работе со spliterator синхронизация не требуется.

Specified by:
spliterator в интерфейсе Collection<E>
Specified by:
spliterator в интерфейсе Iterable<E>
Specified by:
spliterator в интерфейсе List<E>
Returns:
Spliterator над элементами в этом списке
Since:
1.8

subList

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

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

Specified by:
subList в интерфейсе List<E>
Parameters:
fromIndex - нижняя граница (включительно) подсписка
toIndex - верхняя граница (не включительно) подсписка
Returns:
представление указанного диапазона в этом списке
Throws:
IndexOutOfBoundsException - для некорректного индекса конечной точки (fromIndex < 0 || toIndex > size || fromIndex > toIndex)

reversed

public List<E> reversed()
Возвращает представление этого набора в обратном порядке. Порядок встреч элементов в возвращаемом представлении является обратным порядку встреч элементов в этом наборе. Обратный порядок влияет на все чувствительные к порядку операции, включая операции над представлением коллекций возвращаемого представления. Если реализация набора допускает изменения этого представления, изменения «записываются» в базовый набор. Изменения в базовом наборе могут или не могут быть видны в этом представлении в обратном порядке в зависимости от реализации.

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

Specified by:
reversed в интерфейсе List<E>
Specified by:
reversed в интерфейсе SequencedCollection<E>
Returns:
представление этого набора в обратном порядке, как List
Since:
21

© 1993, 2023, 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/21/docs/api/java.base/java/util/concurrent/CopyOnWriteArrayList.html

Spec-Zone.ru

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