Класс ConcurrentLinkedDeque<E>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.concurrent.ConcurrentLinkedDeque<E>
- Type Parameters:
-
E- тип элементов, хранимых в этом очереди с двухсторонним входом
- Все реализуемые интерфейсы:
-
Serializable,Iterable<E>,Collection<E>,Deque<E>,Queue<E>
public class ConcurrentLinkedDeque<E> extends AbstractCollection<E> implements Deque<E>, Serializable
Неограниченная конкурентная очередь с двухсторонним входом (deque), основанная на связанных узлах. Конкурентные операции вставки, удаления и доступа выполняются безопасно для нескольких потоков. Очередь с двухсторонним входом является подходящим выбором, когда многие потоки будут совместно использовать доступ к общему набору. Как и большинство других реализаций конкурентных коллекций, этот класс не допускает использование null элементов.
Итераторы и разделители являются слабо согласованными.
Обратите внимание, что, в отличие от большинства коллекций, метод size является НЕ операцией с постоянной сложностью. Из-за асинхронной природы этих очередей с двухсторонним входом определение текущего количества элементов требует обхода элементов, и поэтому может сообщать неточные результаты, если эта коллекция изменяется во время обхода.
Массовые операции добавления, удаления или проверки нескольких элементов, такие как addAll(java.util.Collection<? extends E>), removeIf(java.util.function.Predicate<? super E>) или forEach(java.util.function.Consumer<? super E>), не гарантируются как выполняющиеся атомарно. Например, обход forEach , выполняемый одновременно с операцией
addAll, может наблюдать только некоторые добавленные элементы.
Этот класс и его итератор реализуют все необязательные методы интерфейсов Deque и Iterator.
Эффекты согласованности памяти: Как и в других конкурентных коллекциях, действия в потоке до размещения объекта в ConcurrentLinkedDeque предшествуют действиям, последующим за доступом или удалением этого элемента из ConcurrentLinkedDeque в другом потоке.
Этот класс является частью Java Collections Framework.
- С:
- 1.7
- См. также:
- Форматирование для сериализации
Конструкторы
| Конструктор | Описание |
|---|---|
ConcurrentLinkedDeque() | Создает пустую очередь с двухсторонним входом. |
ConcurrentLinkedDeque(Collection<? extends E> c) | Создает очередь с двухсторонним входом, первоначально содержащую элементы заданной коллекции, добавленные в порядке обхода итератора коллекции. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | add(E e) | Вставляет указанный элемент в хвост этой очереди с двухсторонним входом. |
boolean | addAll(Collection<? extends E> c) | Добавляет все элементы в указанной коллекции в конец этой очереди с двухсторонним входом в порядке, в котором они возвращаются итератором указанной коллекции. |
void | addFirst(E e) | Вставляет указанный элемент в начало этой очереди с двухсторонним входом. |
void | addLast(E e) | Вставляет указанный элемент в конец этой очереди с двухсторонним входом. |
void | clear() | Удаляет все элементы из этой очереди с двухсторонним входом. |
boolean | contains(Object o) | Возвращает |
Iterator<E> | descendingIterator() | Возвращает итератор над элементами в этой очереди с двухсторонним входом в обратном порядке. |
E | element() | Возвращает, но не удаляет, голову очереди, представленной этой очередью с двухсторонним входом (иначе говоря, первый элемент этой очереди с двухсторонним входом). |
void | forEach(Consumer<? super E> action) | Выполняет заданное действие для каждого элемента |
E | getFirst() | Возвращает, но не удаляет, первый элемент этой очереди с двухсторонним входом. |
E | getLast() | Возвращает, но не удаляет, последний элемент этой очереди с двухсторонним входом. |
boolean | isEmpty() | Возвращает |
Iterator<E> | iterator() | Возвращает итератор над элементами в этой очереди с двухсторонним входом в правильной последовательности. |
boolean | offer(E e) | Вставляет указанный элемент в хвост этой очереди с двухсторонним входом. |
boolean | offerFirst(E e) | Вставляет указанный элемент в начало этой очереди с двухсторонним входом. |
boolean | offerLast(E e) | Вставляет указанный элемент в конец этой очереди с двухсторонним входом. |
E | pop() | Извлекает элемент из стека, представленного этой очередью с двухсторонним входом. |
void | push(E e) | Добавляет элемент в стек, представленный этой очередью с двухсторонним входом (иначе говоря, в начало этой очереди с двухсторонним входом), если это можно сделать немедленно без нарушения ограничений на емкость, выбрасывая |
E | remove() | Извлекает и удаляет голову очереди, представленной этой очередью с двухсторонним входом (иначе говоря, первый элемент этой очереди с двухсторонним входом). |
boolean | remove(Object o) | Удаляет первое вхождение указанного элемента из этой очереди с двухсторонним входом. |
boolean | removeAll(Collection<?> c) | Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательная операция). |
E | removeFirst() | Извлекает и удаляет первый элемент этой очереди с двухсторонним входом. |
boolean | removeFirstOccurrence(Object o) | Удаляет первое вхождение указанного элемента из этой очереди с двухсторонним входом. |
boolean | removeIf(Predicate<? super E> filter) | Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату. |
E | removeLast() | Извлекает и удаляет последний элемент этой очереди с двухсторонним входом. |
boolean | removeLastOccurrence(Object o) | Удаляет последнее вхождение указанного элемента из этой очереди с двухсторонним входом. |
boolean | retainAll(Collection<?> c) | Сохраняет только элементы в этой коллекции, которые содержатся в указанной коллекции (необязательная операция). |
int | size() | Возвращает количество элементов в этой очереди с двухсторонним входом. |
Spliterator<E> | spliterator() | Возвращает |
Object[] | toArray() | Возвращает массив, содержащий все элементы в этой очереди с двухсторонним входом в правильной последовательности (от первого до последнего элемента). |
<T> T[] | toArray(T[] a) | Возвращает массив, содержащий все элементы в этой очереди с двухсторонним входом в правильной последовательности (от первого до последнего элемента); тип времени выполнения возвращаемого массива такой же, как у заданного массива. |
Методы, объявленные в классе java.util.AbstractCollection
containsAll, toString Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Методы, объявленные в интерфейсе java.util.Collection
containsAll, equals, hashCode, parallelStream, stream, toArray Методы, объявленные в интерфейсе java.util.Deque
peek, peekFirst, peekLast, poll, pollFirst, pollLast Конструкторы
ConcurrentLinkedDeque
public ConcurrentLinkedDeque()
Создает пустую очередь с двухсторонним входом.
ConcurrentLinkedDeque
public ConcurrentLinkedDeque(Collection<? extends E> c)
Создает очередь с двухсторонним входом, первоначально содержащую элементы заданной коллекции, добавленные в порядке обхода итератора коллекции.
- Параметры:
-
c- коллекция элементов, которые должны быть первоначально содержаться - Исключения:
-
NullPointerException- если указанная коллекция или любой из ее элементов равны null
Методы
addFirst
public void addFirst(E e)
Вставляет указанный элемент в начало этого дека. Поскольку дек неограничен, этот метод никогда не бросит IllegalStateException.
- Определено в:
-
addFirstв интерфейсеDeque<E> - Параметры:
-
e- добавляемый элемент - Исключения:
-
NullPointerException- если указанный элемент равен null
addLast
public void addLast(E e)
Вставляет указанный элемент в конец этого дека. Поскольку дек неограничен, этот метод никогда не бросит IllegalStateException.
Этот метод эквивалентен add(E).
- Определено в:
-
addLastв интерфейсеDeque<E> - Параметры:
-
e- добавляемый элемент - Исключения:
-
NullPointerException- если указанный элемент равен null
offerFirst
public boolean offerFirst(E e)
Вставляет указанный элемент в начало этого дека. Поскольку дек неограничен, этот метод никогда не вернёт false.
- Определено в:
-
offerFirstв интерфейсеDeque<E> - Параметры:
-
e- добавляемый элемент - Возвращает:
-
true(как указано вDeque.offerFirst(E)) - Исключения:
-
NullPointerException- если указанный элемент равен null
offerLast
public boolean offerLast(E e)
Вставляет указанный элемент в конец этого дека. Поскольку дек неограничен, этот метод никогда не вернёт false.
Этот метод эквивалентен add(E).
- Определено в:
-
offerLastв интерфейсеDeque<E> - Параметры:
-
e- добавляемый элемент - Возвращает:
-
true(как указано вDeque.offerLast(E)) - Исключения:
-
NullPointerException- если указанный элемент равен null
getFirst
public E getFirst()
Описание скопировано из интерфейса: Deque
Возвращает, но не удаляет, первый элемент этого дека. Этот метод отличается от peekFirst только тем, что он генерирует исключение, если этот дек пуст.
- Определено в:
-
getFirstв интерфейсеDeque<E> - Возвращает:
- голова этого дека
- Исключения:
-
NoSuchElementException- если этот дек пуст
getLast
public E getLast()
Описание скопировано из интерфейса: Deque
Возвращает, но не удаляет, последний элемент этого дека. Этот метод отличается от peekLast только тем, что он генерирует исключение, если этот дек пуст.
- Определено в:
-
getLastв интерфейсеDeque<E> - Возвращает:
- хвост этого дека
- Исключения:
-
NoSuchElementException- если этот дек пуст
removeFirst
public E removeFirst()
Описание скопировано из интерфейса: Deque
Возвращает и удаляет первый элемент этого дека. Этот метод отличается от pollFirst только тем, что он генерирует исключение, если этот дек пуст.
- Определено в:
-
removeFirstв интерфейсеDeque<E> - Возвращает:
- голова этого дека
- Исключения:
-
NoSuchElementException- если этот дек пуст
removeLast
public E removeLast()
Описание скопировано из интерфейса: Deque
Возвращает и удаляет последний элемент этого дека. Этот метод отличается от pollLast только тем, что он генерирует исключение, если этот дек пуст.
- Определено в:
-
removeLastв интерфейсеDeque<E> - Возвращает:
- хвост этого дека
- Исключения:
-
NoSuchElementException- если этот дек пуст
offer
public boolean offer(E e)
Вставляет указанный элемент в хвост этого дека. Поскольку дек неограничен, этот метод никогда не вернёт false.
- Определено в:
-
offerв интерфейсеDeque<E> - Определено в:
-
offerв интерфейсеQueue<E> - Параметры:
-
e- добавляемый элемент - Возвращает:
-
true(как указано вQueue.offer(E)) - Исключения:
-
NullPointerException- если указанный элемент равен null
add
public boolean add(E e)
Вставляет указанный элемент в хвост этого дека. Поскольку дек неограничен, этот метод никогда не бросит IllegalStateException или вернёт false.
- Определено в:
-
addв интерфейсеCollection<E> - Определено в:
-
addв интерфейсеDeque<E> - Определено в:
-
addв интерфейсеQueue<E> - Переопределяет:
-
addв классеAbstractCollection<E> - Параметры:
-
e- элемент, присутствие которого в этом наборе необходимо гарантировать - Возвращает:
-
true(как указано вCollection.add(E)) - Исключения:
-
NullPointerException- если указанный элемент равен null
remove
public E remove()
Описание скопировано из интерфейса: Deque
Возвращает и удаляет голову очереди, представленной этим деком (другими словами, первый элемент этого дека). Этот метод отличается от poll() только тем, что он генерирует исключение, если этот дек пуст.
Этот метод эквивалентен Deque.removeFirst().
- Определено в:
-
removeв интерфейсеDeque<E> - Определено в:
-
removeв интерфейсеQueue<E> - Возвращает:
- голова очереди, представленной этим деком
- Исключения:
-
NoSuchElementException- если этот дек пуст
pop
public E pop()
Описание скопировано из интерфейса: Deque
Извлекает элемент из стека, представленного этим деком. Другими словами, удаляет и возвращает первый элемент этого дека.
Этот метод эквивалентен Deque.removeFirst().
- Определено в:
-
popв интерфейсеDeque<E> - Возвращает:
- элемент в начале этого дека (который является вершиной стека, представленного этим деком)
- Исключения:
-
NoSuchElementException- если этот дек пуст
element
public E element()
Описание скопировано из интерфейса: Deque
Возвращает, но не удаляет, голову очереди, представленной этим деком (другими словами, первый элемент этого дека). Этот метод отличается от peek только тем, что он генерирует исключение, если этот дек пуст.
Этот метод эквивалентен Deque.getFirst().
- Определено в:
-
elementв интерфейсеDeque<E> - Определено в:
-
elementв интерфейсеQueue<E> - Возвращает:
- голова очереди, представленной этим деком
- Исключения:
-
NoSuchElementException- если этот дек пуст
push
public void push(E e)
Описание скопировано из интерфейса: Deque
Помещает элемент в стек, представленный этим деком (другими словами, в начало этого дека), если это возможно сделать немедленно без нарушения ограничений по емкости, выбрасывая IllegalStateException , если в настоящее время нет места.
Этот метод эквивалентен Deque.addFirst(E).
- Определено в:
-
pushв интерфейсеDeque<E> - Параметры:
-
e- элемент, который необходимо поместить - Исключения:
-
NullPointerException- если указанный элемент равен null, и этот дек не допускает null-элементов
removeFirstOccurrence
public boolean removeFirstOccurrence(Object o)
Удаляет первое вхождение указанного элемента из этого дека. Если дек не содержит элемент, он не изменяется. Более формально, удаляет первый элемент e такой, что o.equals(e) (если такой элемент существует). Возвращает true , если этот дек содержал указанный элемент (или, эквивалентно, если этот дек изменился в результате вызова).
- Определено в:
-
removeFirstOccurrenceв интерфейсеDeque<E> - Параметры:
-
o- элемент, который нужно удалить из этого дека, если он присутствует - Возвращает:
-
true, если дек содержал указанный элемент - Исключения:
-
NullPointerException- если указанный элемент равен null
removeLastOccurrence
public boolean removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента из этого дека. Если дек не содержит элемент, он не изменяется. Более формально, удаляет последний элемент e такой, что o.equals(e) (если такой элемент существует). Возвращает true , если этот дек содержал указанный элемент (или, эквивалентно, если этот дек изменился в результате вызова).
- Определено в:
-
removeLastOccurrenceв интерфейсеDeque<E> - Параметры:
-
o- элемент, который нужно удалить из этого дека, если он присутствует - Возвращает:
-
true, если дек содержал указанный элемент - Исключения:
-
NullPointerException- если указанный элемент равен null
contains
public boolean contains(Object o)
Возвращает true, если данная очередь содержит указанный элемент. Более формально, возвращает true тогда и только тогда, когда эта очередь содержит по крайней мере один элемент e, такой что o.equals(e).
- Specified by:
-
containsв интерфейсеCollection<E> - Specified by:
-
containsв интерфейсеDeque<E> - Overrides:
-
containsв классеAbstractCollection<E> - Parameters:
-
o- элемент, присутствие которого в этой очереди необходимо проверить - Returns:
-
true, если эта очередь содержит указанный элемент
isEmpty
public boolean isEmpty()
Возвращает true, если эта коллекция не содержит элементов.
- Specified by:
-
isEmptyв интерфейсеCollection<E> - Overrides:
-
isEmptyв классеAbstractCollection<E> - Returns:
-
true, если эта коллекция не содержит элементов
size
public int size()
Возвращает количество элементов в этой очереди. Если эта очередь содержит более Integer.MAX_VALUE элементов, возвращается Integer.MAX_VALUE.
Обратите внимание, что, в отличие от большинства коллекций, этот метод НЕ является операцией постоянного времени. Из-за асинхронной природы этих очередей, определение текущего количества элементов требует их полного обхода и подсчета. Кроме того, размер может измениться во время выполнения этого метода, в этом случае возвращаемый результат будет неточным. Таким образом, этот метод обычно не очень полезен в конкурирующих приложениях.
- Specified by:
-
sizeв интерфейсеCollection<E> - Specified by:
-
sizeв интерфейсеDeque<E> - Returns:
- количество элементов в этой очереди
remove
public boolean remove(Object o)
Удаляет первое вхождение указанного элемента из этой очереди. Если очередь не содержит элемента, она остается неизменной. Более формально, удаляет первый элемент e, такой что o.equals(e) (если такой элемент существует). Возвращает true, если эта очередь содержала указанный элемент (или, эквивалентно, если эта очередь изменилась в результате вызова).
Этот метод эквивалентен removeFirstOccurrence(Object).
- Specified by:
-
removeв интерфейсеCollection<E> - Specified by:
-
removeв интерфейсеDeque<E> - Overrides:
-
removeв классеAbstractCollection<E> - Parameters:
-
o- элемент, который необходимо удалить из этой очереди, если он присутствует - Returns:
-
true, если очередь содержала указанный элемент - Throws:
-
NullPointerException- если указанный элемент равен null
addAll
public boolean addAll(Collection<? extends E> c)
Добавляет все элементы из указанной коллекции в конец этой очереди в порядке, в котором они возвращаются итератором указанной коллекции. Попытки addAll очереди к самой себе приводят к IllegalArgumentException.
- Specified by:
-
addAllв интерфейсеCollection<E> - Specified by:
-
addAllв интерфейсеDeque<E> - Overrides:
-
addAllв классеAbstractCollection<E> - Parameters:
-
c- элементы, которые необходимо вставить в эту очередь - Returns:
-
true, если эта очередь изменилась в результате вызова - Throws:
-
NullPointerException- если указанная коллекция или любой из ее элементов равны null -
IllegalArgumentException- если коллекция является этой очередью - See Also:
AbstractCollection.add(Object)
clear
public void clear()
Удаляет все элементы из этой очереди.
- Specified by:
-
clearв интерфейсеCollection<E> - Overrides:
-
clearв классеAbstractCollection<E>
toArray
public Object[] toArray()
Возвращает массив, содержащий все элементы этой очереди в правильной последовательности (от первого к последнему элементу).
Возвращаемый массив будет «безопасным» в том смысле, что к нему не сохраняются ссылки из этой очереди. (Другими словами, этот метод должен выделить новый массив). Таким образом, вызывающая сторона свободна изменять возвращаемый массив.
Этот метод действует как мост между основанными на массивах и основанными на коллекциях API.
- Specified by:
-
toArrayв интерфейсеCollection<E> - Overrides:
-
toArrayв классеAbstractCollection<E> - Returns:
- массив, содержащий все элементы этой очереди
toArray
public <T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой очереди в правильной последовательности (от первого к последнему элементу); тип возвращаемого массива соответствует типу указанного массива. Если очередь помещается в указанный массив, она возвращается в нем. В противном случае выделяется новый массив с типом, соответствующим указанному массиву, и размером этой очереди.
Если эта очередь помещается в указанный массив с избытком места (т. е. массив имеет больше элементов, чем эта очередь), элемент в массиве непосредственно после конца очереди устанавливается в null.
Как и метод toArray(), этот метод действует как мост между основанными на массивах и основанными на коллекциях API. Кроме того, этот метод позволяет точно контролировать тип возвращаемого массива и может в определенных ситуациях использоваться для экономии затрат на выделение памяти.
Предположим, x - это очередь, известная тем, что содержит только строки. Следующий код может использоваться для выгрузки очереди в новый выделенный массив String:
String[] y = x.toArray(new String[0]);Обратите внимание, что
toArray(new Object[0]) идентичен по функции toArray().- Specified by:
-
toArrayв интерфейсеCollection<E> - Overrides:
-
toArrayв классеAbstractCollection<E> - Type Parameters:
-
T- тип компонентов массива, который должен содержать коллекцию - Parameters:
-
a- массив, в который должны быть помещены элементы очереди, если он достаточно большой; в противном случае для этой цели выделяется новый массив того же типа - Returns:
- массив, содержащий все элементы этой очереди
- Throws:
-
ArrayStoreException- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой очереди -
NullPointerException- если указанный массив равен null
iterator
public Iterator<E> iterator()
Возвращает итератор по элементам этой очереди в правильной последовательности. Элементы будут возвращены в порядке от первого (начала) до последнего (конца).
Возвращаемый итератор является слабо согласованным.
- Specified by:
-
iteratorв интерфейсеCollection<E> - Specified by:
-
iteratorв интерфейсеDeque<E> - Specified by:
-
iteratorв интерфейсеIterable<E> - Specified by:
-
iteratorв классеAbstractCollection<E> - Returns:
- итератор по элементам этой очереди в правильной последовательности
descendingIterator
public Iterator<E> descendingIterator()
Возвращает итератор по элементам этой очереди в обратном порядке. Элементы будут возвращены в порядке от последнего (конца) к первому (началу).
Возвращаемый итератор является слабо согласованным.
- Specified by:
-
descendingIteratorв интерфейсеDeque<E> - Returns:
- итератор по элементам этой очереди в обратном порядке
spliterator
public Spliterator<E> spliterator()
Возвращает Spliterator по элементам этой очереди.
Возвращаемый спитератор является слабо согласованным.
Спитератор Spliterator сообщает о Spliterator.CONCURRENT, Spliterator.ORDERED и Spliterator.NONNULL.
- Specified by:
-
spliteratorв интерфейсеCollection<E> - Specified by:
-
spliteratorв интерфейсеIterable<E> - Implementation Note:
SpliteratorреализуетtrySplitдля обеспечения ограниченного параллелизма.- Returns:
Spliteratorпо элементам этой очереди- Since:
- 1.8
removeIf
public boolean removeIf(Predicate<? super E> filter)
Описание скопировано из интерфейса: Collection
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату. Ошибки или исключения времени выполнения, сгенерированные во время итерации или предикатом, передаются вызывающей стороне.
- Specified by:
-
removeIfв интерфейсеCollection<E> - Parameters:
-
filter- предикат, возвращающийtrueдля элементов, которые необходимо удалить - Returns:
-
true, если были удалены какие-либо элементы - Throws:
-
NullPointerException- если указанный фильтр равен null
removeAll
public boolean removeAll(Collection<?> c)
Описание скопировано из класса: AbstractCollection
Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (дополнительная операция). После возврата вызова эта коллекция не будет содержать элементов, общих с указанной коллекцией.
- Определено:
-
removeAllв интерфейсеCollection<E> - Переопределяет:
-
removeAllв классеAbstractCollection<E> - Параметры:
-
c— коллекция, содержащая элементы, которые нужно удалить из этой коллекции - Возвращает:
-
trueесли эта коллекция изменилась в результате вызова - Исключения:
-
NullPointerException— если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не поддерживает нулевые элементы (необязательно), или если указанная коллекция равна null - См. также:
-
AbstractCollection.remove(Object),AbstractCollection.contains(Object)
retainAll
public boolean retainAll(Collection<?> c)
Описание скопировано из класса: AbstractCollection
Сохраняет только элементы в этой коллекции, которые содержатся в указанной коллекции (необязательная операция). Другими словами, удаляет из этой коллекции все ее элементы, которые не содержатся в указанной коллекции.
- Определено:
-
retainAllв интерфейсеCollection<E> - Переопределяет:
-
retainAllв классеAbstractCollection<E> - Параметры:
-
c— коллекция, содержащая элементы, которые нужно сохранить в этой коллекции - Возвращает:
-
trueесли эта коллекция изменилась в результате вызова - Исключения:
-
NullPointerException— если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не допускает нулевые элементы (необязательно), или если указанная коллекция равна null - См. также:
-
AbstractCollection.remove(Object),AbstractCollection.contains(Object)
forEach
public void forEach(Consumer<? super E> action)
Описание скопировано из интерфейса: Iterable
Выполняет заданное действие для каждого элемента Iterable до тех пор, пока все элементы не будут обработаны или действие не вызовет исключение. Действия выполняются в порядке итерации, если этот порядок указан. Исключения, вызываемые действием, передаются вызывающей стороне.
Поведение этого метода не определено, если действие выполняет побочные эффекты, которые изменяют исходный источник элементов, если только переопределяющий класс не указал политику одновременного изменения.
- Определено:
-
forEachв интерфейсеIterable<E> - Параметры:
-
action— действие, которое должно выполняться для каждого элемента - Исключения:
-
NullPointerException— если указанное действие равно null
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ConcurrentLinkedDeque.html