Класс LinkedBlockingDeque<E>
- Параметры типа:
E- тип элементов, хранящихся в этой двусторонней очереди
- Все реализуемые интерфейсы:
Serializable, Iterable<E>, Collection<E>, BlockingDeque<E>, BlockingQueue<E>, Deque<E>, Queue<E>, SequencedCollection<E>
public class LinkedBlockingDeque<E> extends AbstractQueue<E> implements BlockingDeque<E>, Serializable
Необязательный аргумент конструктора, задающий ограничение ёмкости, позволяет предотвратить чрезмерное увеличение. Если ёмкость не указана, она равна Integer.MAX_VALUE. Связанные узлы динамически создаются при каждой вставке, если в результате ёмкость двусторонней очереди не будет превышена.
Большинство операций выполняется за постоянное время (без учёта времени блокировки). Исключения составляют remove, removeFirstOccurrence, removeLastOccurrence, contains и массовые операции: все они выполняются за линейное время.
Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator.
Этот класс входит в состав фреймворка коллекций Java.
- Начиная с версии:
- 1.6
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinkedBlockingDeque() |
Создаёт LinkedBlockingDeque с ёмкостью Integer.MAX_VALUE. |
LinkedBlockingDeque |
Создаёт LinkedBlockingDeque с заданной (фиксированной) ёмкостью. |
LinkedBlockingDeque |
Создаёт LinkedBlockingDeque с ёмкостью Integer.MAX_VALUE, изначально содержащую элементы указанной коллекции, добавленные в порядке обхода её итератора. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
add |
Вставляет указанный элемент в конец этой двусторонней очереди, если это не нарушает ограничений ёмкости. |
boolean |
addAll |
Добавляет все элементы указанной коллекции в конец этой двусторонней очереди в порядке, в котором их возвращает итератор указанной коллекции. |
void |
addFirst |
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений ёмкости; если свободного места нет, выбрасывает IllegalStateException. |
void |
addLast |
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений ёмкости; если свободного места нет, выбрасывает IllegalStateException. |
void |
clear() |
Атомарно удаляет все элементы из этой двусторонней очереди. |
boolean |
contains |
Возвращает true, если эта двусторонняя очередь содержит указанный элемент. |
Iterator |
descendingIterator() |
Возвращает итератор элементов этой двусторонней очереди в обратном порядке. |
int |
drainTo |
Удаляет все доступные элементы из этой очереди и добавляет их в указанную коллекцию. |
int |
drainTo |
Удаляет из этой очереди не более указанного числа доступных элементов и добавляет их в указанную коллекцию. |
E |
element() |
Возвращает, не удаляя, элемент в начале очереди, представленной этой двусторонней очередью. |
void |
forEach |
Выполняет указанное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не вызовет исключение. |
E |
getFirst() |
Возвращает, не удаляя, первый элемент этой двусторонней очереди. |
E |
getLast() |
Возвращает, не удаляя, последний элемент этой двусторонней очереди. |
Iterator |
iterator() |
Возвращает итератор элементов этой двусторонней очереди в обычном порядке. |
boolean |
offer |
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в её конец), если это можно сделать немедленно, не нарушая ограничений ёмкости; при успехе возвращает true, а если свободного места нет — false. |
boolean |
offer |
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в её конец), при необходимости ожидая освобождения места не дольше заданного времени ожидания. |
boolean |
offerFirst |
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений ёмкости; при успехе возвращает true, а если свободного места нет — false. |
boolean |
offerFirst |
Вставляет указанный элемент в начало этой двусторонней очереди, при необходимости ожидая освобождения места не дольше заданного времени ожидания. |
boolean |
offerLast |
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений ёмкости; при успехе возвращает true, а если свободного места нет — false. |
boolean |
offerLast |
Вставляет указанный элемент в конец этой двусторонней очереди, при необходимости ожидая освобождения места не дольше заданного времени ожидания. |
E |
peek() |
Возвращает, не удаляя, элемент в начале очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), или возвращает null, если она пуста. |
E |
peekFirst() |
Возвращает, не удаляя, первый элемент этой двусторонней очереди или возвращает null, если она пуста. |
E |
peekLast() |
Возвращает, не удаляя, последний элемент этой двусторонней очереди или возвращает null, если она пуста. |
E |
poll() |
Извлекает и удаляет элемент в начале очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), или возвращает null, если она пуста. |
E |
poll |
Извлекает и удаляет элемент в начале очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), при необходимости ожидая появления элемента не дольше заданного времени ожидания. |
E |
pollFirst() |
Извлекает и удаляет первый элемент этой двусторонней очереди или возвращает null, если она пуста. |
E |
pollFirst |
Извлекает и удаляет первый элемент этой двусторонней очереди, при необходимости ожидая появления элемента не дольше заданного времени ожидания. |
E |
pollLast() |
Извлекает и удаляет последний элемент этой двусторонней очереди или возвращает null, если она пуста. |
E |
pollLast |
Извлекает и удаляет последний элемент этой двусторонней очереди, при необходимости ожидая появления элемента не дольше заданного времени ожидания. |
E |
pop() |
Извлекает элемент из стека, представленного этой двусторонней очередью. |
void |
push |
Помещает элемент в стек, представленный этой двусторонней очередью (то есть в её начало), если это можно сделать немедленно, не нарушая ограничений ёмкости; если свободного места нет, выбрасывает IllegalStateException. |
void |
put |
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в её конец), при необходимости ожидая освобождения места. |
void |
putFirst |
Вставляет указанный элемент в начало этой двусторонней очереди, при необходимости ожидая освобождения места. |
void |
putLast |
Вставляет указанный элемент в конец этой двусторонней очереди, при необходимости ожидая освобождения места. |
int |
remainingCapacity() |
Возвращает число дополнительных элементов, которые эта двусторонняя очередь в идеальных условиях (при отсутствии ограничений памяти или ресурсов) может принять без блокировки. |
E |
remove() |
Извлекает и удаляет элемент в начале очереди, представленной этой двусторонней очередью. |
boolean |
remove |
Удаляет первое вхождение указанного элемента из этой двусторонней очереди. |
boolean |
removeAll |
Удаляет из этой коллекции все элементы, которые также содержатся в указанной коллекции (необязательная операция). |
E |
removeFirst() |
Извлекает и удаляет первый элемент этой двусторонней очереди. |
boolean |
removeFirstOccurrence |
Удаляет первое вхождение указанного элемента из этой двусторонней очереди. |
boolean |
removeIf |
Удаляет из этой коллекции все элементы, удовлетворяющие заданному предикату (необязательная операция). |
E |
removeLast() |
Извлекает и удаляет последний элемент этой двусторонней очереди. |
boolean |
removeLastOccurrence |
Удаляет последнее вхождение указанного элемента из этой двусторонней очереди. |
boolean |
retainAll |
Оставляет в этой коллекции только элементы, содержащиеся в указанной коллекции (необязательная операция). |
int |
size() |
Возвращает число элементов в этой двусторонней очереди. |
Spliterator |
spliterator() |
Возвращает Spliterator для элементов этой двусторонней очереди. |
E |
take() |
Извлекает и удаляет элемент в начале очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), при необходимости ожидая появления элемента. |
E |
takeFirst() |
Извлекает и удаляет первый элемент этой двусторонней очереди, при необходимости ожидая появления элемента. |
E |
takeLast() |
Извлекает и удаляет последний элемент этой двусторонней очереди, при необходимости ожидая появления элемента. |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этой двусторонней очереди в надлежащем порядке (от первого элемента к последнему). |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой двусторонней очереди в надлежащем порядке; тип возвращаемого массива во время выполнения соответствует типу указанного массива. |
Методы, объявленные в классе AbstractCollection
containsAll, isEmpty, toString
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе Collection
containsAll, equals, hashCode, isEmpty, parallelStream, stream, toArray
Подробное описание конструкторов
LinkedBlockingDeque
public LinkedBlockingDeque()
LinkedBlockingDeque емкостью Integer.MAX_VALUE.LinkedBlockingDeque
public LinkedBlockingDeque(int capacity)
LinkedBlockingDeque с заданной (фиксированной) емкостью.- Параметры:
-
capacity— емкость этой двусторонней очереди - Исключения:
-
IllegalArgumentException— еслиcapacityменьше 1
LinkedBlockingDeque
public LinkedBlockingDeque(Collection<? extends E> c)
LinkedBlockingDeque емкостью Integer.MAX_VALUE, изначально содержащую элементы заданной коллекции, добавленные в порядке обхода итератора коллекции.- Параметры:
-
c— коллекция элементов, которые должны содержаться изначально - Исключения:
-
NullPointerException— если заданная коллекция или любой из ее элементов равны null
Подробное описание методов
addFirst
public void addFirst(E e)
BlockingDequeIllegalStateException. При использовании двусторонней очереди с ограниченной емкостью обычно предпочтительно использовать offerFirst.- Определено в:
-
addFirstв интерфейсеBlockingDeque<E> - Определено в:
-
addFirstв интерфейсеDeque<E> - Определено в:
-
addFirstв интерфейсеSequencedCollection<E> - Параметры:
-
e— добавляемый элемент - Исключения:
-
IllegalStateException— если эта двусторонняя очередь заполнена -
NullPointerException— если указанный элемент равен null
addLast
public void addLast(E e)
BlockingDequeIllegalStateException. При использовании двусторонней очереди с ограниченной емкостью обычно предпочтительно использовать offerLast.- Определено в:
-
addLastв интерфейсеBlockingDeque<E> - Определено в:
-
addLastв интерфейсеDeque<E> - Определено в:
-
addLastв интерфейсеSequencedCollection<E> - Параметры:
-
e— добавляемый элемент - Исключения:
-
IllegalStateException— если эта двусторонняя очередь заполнена -
NullPointerException— если указанный элемент равен null
offerFirst
public boolean offerFirst(E e)
BlockingDequetrue, а если места нет — false. При использовании двусторонней очереди с ограниченной емкостью этот метод обычно предпочтительнее метода addFirst, который может завершиться неудачей при вставке элемента только путем выбрасывания исключения.- Определено в:
-
offerFirstв интерфейсеBlockingDeque<E> - Определено в:
-
offerFirstв интерфейсеDeque<E> - Параметры:
-
e— добавляемый элемент - Возвращает:
-
true, если элемент добавлен в эту двустороннюю очередь, иначеfalse - Исключения:
-
NullPointerException— если указанный элемент равен null
offerLast
public boolean offerLast(E e)
BlockingDequetrue, а если места нет — false. При использовании двусторонней очереди с ограниченной емкостью этот метод обычно предпочтительнее метода addLast, который может завершиться неудачей при вставке элемента только путем выбрасывания исключения.- Определено в:
-
offerLastв интерфейсеBlockingDeque<E> - Определено в:
-
offerLastв интерфейсеDeque<E> - Параметры:
-
e— добавляемый элемент - Возвращает:
-
true, если элемент добавлен в эту двустороннюю очередь, иначеfalse - Исключения:
-
NullPointerException— если указанный элемент равен null
putFirst
public void putFirst(E e) throws InterruptedException
BlockingDeque- Определено в:
-
putFirstв интерфейсеBlockingDeque<E> - Параметры:
-
e— добавляемый элемент - Исключения:
-
NullPointerException— если указанный элемент равен null -
InterruptedException— если ожидание было прервано
putLast
public void putLast(E e) throws InterruptedException
BlockingDeque- Определено в:
-
putLastв интерфейсеBlockingDeque<E> - Параметры:
-
e— добавляемый элемент - Исключения:
-
NullPointerException— если указанный элемент равен null -
InterruptedException— если ожидание было прервано
offerFirst
public boolean offerFirst(E e, long timeout, TimeUnit unit) throws InterruptedException
BlockingDeque- Определено в:
-
offerFirstв интерфейсеBlockingDeque<E> - Параметры:
-
e— добавляемый элемент -
timeout— время ожидания до прекращения попыток, в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраtimeout - Возвращает:
-
trueпри успехе илиfalse, если заданное время ожидания истекло до появления свободного места - Исключения:
-
NullPointerException— если указанный элемент равен null -
InterruptedException— если ожидание было прервано
offerLast
public boolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException
BlockingDeque- Определено в:
-
offerLastв интерфейсеBlockingDeque<E> - Параметры:
-
e— добавляемый элемент -
timeout— время ожидания до прекращения попыток, в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраtimeout - Возвращает:
-
trueпри успехе илиfalse, если заданное время ожидания истекло до появления свободного места - Исключения:
-
NullPointerException— если указанный элемент равен null -
InterruptedException— если ожидание было прервано
removeFirst
public E removeFirst()
DequepollFirst только тем, что выбрасывает исключение, если двусторонняя очередь пуста.- Определено в:
-
removeFirstв интерфейсеDeque<E> - Определено в:
-
removeFirstв интерфейсеSequencedCollection<E> - Возвращает:
- первый элемент этой двусторонней очереди
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
removeLast
public E removeLast()
DequepollLast только тем, что выбрасывает исключение, если двусторонняя очередь пуста.- Определено в:
-
removeLastв интерфейсеDeque<E> - Определено в:
-
removeLastв интерфейсеSequencedCollection<E> - Возвращает:
- последний элемент этой двусторонней очереди
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
pollFirst
pollLast
takeFirst
public E takeFirst() throws InterruptedException
BlockingDeque- Определено в:
-
takeFirstв интерфейсеBlockingDeque<E> - Возвращает:
- первый элемент этой двусторонней очереди
- Исключения:
-
InterruptedException— если ожидание было прервано
takeLast
public E takeLast() throws InterruptedException
BlockingDeque- Определено в:
-
takeLastв интерфейсеBlockingDeque<E> - Возвращает:
- последний элемент этой двусторонней очереди
- Исключения:
-
InterruptedException— если ожидание было прервано
pollFirst
public E pollFirst(long timeout, TimeUnit unit) throws InterruptedException
BlockingDeque- Определено в:
-
pollFirstв интерфейсеBlockingDeque<E> - Параметры:
-
timeout— время ожидания до прекращения попыток, в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраtimeout - Возвращает:
- первый элемент этой двусторонней очереди или
null, если заданное время ожидания истекло до появления элемента - Исключения:
-
InterruptedException— если ожидание было прервано
pollLast
public E pollLast(long timeout, TimeUnit unit) throws InterruptedException
BlockingDeque- Определено в:
-
pollLastв интерфейсеBlockingDeque<E> - Параметры:
-
timeout— время ожидания до прекращения попыток, в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраtimeout - Возвращает:
- последний элемент этой двусторонней очереди или
null, если заданное время ожидания истекло до появления элемента - Исключения:
-
InterruptedException— если ожидание было прервано
getFirst
public E getFirst()
DequepeekFirst только тем, что выбрасывает исключение, если двусторонняя очередь пуста.- Определено в:
-
getFirstв интерфейсеDeque<E> - Определено в:
-
getFirstв интерфейсеSequencedCollection<E> - Возвращает:
- первый элемент этой двусторонней очереди
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
getLast
public E getLast()
DequepeekLast только тем, что выбрасывает исключение, если двусторонняя очередь пуста.- Определено в:
-
getLastв интерфейсеDeque<E> - Определено в:
-
getLastв интерфейсеSequencedCollection<E> - Возвращает:
- последний элемент этой двусторонней очереди
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
peekFirst
peekLast
removeFirstOccurrence
public boolean removeFirstOccurrence(Object o)
BlockingDequee такой, что o.equals(e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что равнозначно, если в результате вызова очередь изменилась).- Определено в:
-
removeFirstOccurrenceв интерфейсеBlockingDeque<E> - Определено в:
-
removeFirstOccurrenceв интерфейсеDeque<E> - Параметры:
-
o— элемент, который следует удалить из этой двусторонней очереди, если он присутствует - Возвращает:
-
true, если в результате вызова элемент был удален
removeLastOccurrence
public boolean removeLastOccurrence(Object o)
BlockingDequee такой, что o.equals(e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что равнозначно, если в результате вызова очередь изменилась).- Определено в:
-
removeLastOccurrenceв интерфейсеBlockingDeque<E> - Определено в:
-
removeLastOccurrenceв интерфейсеDeque<E> - Параметры:
-
o— элемент, который следует удалить из этой двусторонней очереди, если он присутствует - Возвращает:
-
true, если в результате вызова элемент был удален
add
public boolean add(E e)
offer. Этот метод эквивалентен addLast(E).
- Определено в:
-
addв интерфейсеBlockingDeque<E> - Определено в:
-
addв интерфейсеBlockingQueue<E> - Определено в:
-
addв интерфейсеCollection<E> - Определено в:
-
addв интерфейсеDeque<E> - Определено в:
-
addв интерфейсеQueue<E> - Переопределяет:
-
addв классеAbstractQueue<E> - Параметры:
-
e— добавляемый элемент - Возвращает:
-
true(как указано вCollection.add(E)) - Исключения:
-
IllegalStateException— если эта двусторонняя очередь заполнена -
NullPointerException— если указанный элемент равен null
offer
public boolean offer(E e)
true, а если места нет — false. При использовании двусторонней очереди с ограниченной емкостью этот метод обычно предпочтительнее метода BlockingDeque.add(E), который может завершиться неудачей при вставке элемента только путем выбрасывания исключения. Этот метод эквивалентен offerLast.
- Определено в:
-
offerв интерфейсеBlockingDeque<E> - Определено в:
-
offerв интерфейсеBlockingQueue<E> - Определено в:
-
offerв интерфейсеDeque<E> - Определено в:
-
offerв интерфейсеQueue<E> - Параметры:
-
e— добавляемый элемент - Возвращает:
-
true, если элемент добавлен в эту очередь, иначеfalse - Исключения:
-
NullPointerException— если указанный элемент равен null
put
public void put(E e) throws InterruptedException
BlockingDequeЭтот метод эквивалентен putLast.
- Определено в:
-
putв интерфейсеBlockingDeque<E> - Определено в:
-
putв интерфейсеBlockingQueue<E> - Параметры:
-
e— добавляемый элемент - Исключения:
-
NullPointerException— если указанный элемент равен null -
InterruptedException— если ожидание было прервано
offer
public boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
BlockingDequeЭтот метод эквивалентен offerLast.
- Определено в:
-
offerв интерфейсеBlockingDeque<E> - Определено в:
-
offerв интерфейсеBlockingQueue<E> - Параметры:
-
e— добавляемый элемент -
timeout— время ожидания до прекращения попыток, в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраtimeout - Возвращает:
-
true, если элемент добавлен в эту двустороннюю очередь, иначеfalse - Исключения:
-
NullPointerException— если указанный элемент равен null -
InterruptedException— если ожидание было прервано
remove
public E remove()
poll() только тем, что выбрасывает исключение, если эта двусторонняя очередь пуста. Этот метод эквивалентен removeFirst.
- Определено в:
-
removeв интерфейсеBlockingDeque<E> - Определено в:
-
removeв интерфейсеDeque<E> - Определено в:
-
removeв интерфейсеQueue<E> - Переопределяет:
-
removeв классеAbstractQueue<E> - Возвращает:
- начало очереди, представленной этой двусторонней очередью
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
poll
public E poll()
null, если эта двусторонняя очередь пуста. Этот метод эквивалентен Deque.pollFirst().
take
public E take() throws InterruptedException
BlockingDequeЭтот метод эквивалентен takeFirst.
- Определено в:
-
takeв интерфейсеBlockingDeque<E> - Определено в:
-
takeв интерфейсеBlockingQueue<E> - Возвращает:
- первый элемент этой двусторонней очереди
- Исключения:
-
InterruptedException— если ожидание было прервано
poll
public E poll(long timeout, TimeUnit unit) throws InterruptedException
BlockingDequeЭтот метод эквивалентен pollFirst.
- Определено в:
-
pollв интерфейсеBlockingDeque<E> - Определено в:
-
pollв интерфейсеBlockingQueue<E> - Параметры:
-
timeout- сколько времени ожидать до прекращения попыток, в единицахunit -
unit-TimeUnit, определяющий, как интерпретировать параметрtimeout - Возвращает:
- начало этой двусторонней очереди или
null, если указанное время ожидания истекает до появления доступного элемента - Исключения:
-
InterruptedException- если ожидание было прервано
element
public E element()
peek() только тем, что выбрасывает исключение, если эта двусторонняя очередь пуста. Этот метод эквивалентен getFirst.
- Определено в:
-
elementв интерфейсеBlockingDeque<E> - Определено в:
-
elementв интерфейсеDeque<E> - Определено в:
-
elementв интерфейсеQueue<E> - Переопределяет:
-
elementв классеAbstractQueue<E> - Возвращает:
- начало очереди, представленной этой двусторонней очередью
- Исключения:
-
NoSuchElementException- если эта двусторонняя очередь пуста
peek
public E peek()
null, если эта двусторонняя очередь пуста. Этот метод эквивалентен peekFirst.
remainingCapacity
public int remainingCapacity()
size этой двусторонней очереди. Обратите внимание, что по значению remainingCapacity не всегда можно определить, удастся ли вставить элемент, поскольку другой поток может уже собираться вставить или удалить элемент.
- Определено в:
-
remainingCapacityв интерфейсеBlockingQueue<E> - Возвращает:
- оставшуюся вместимость
drainTo
public int drainTo(Collection<? super E> c)
BlockingQueuec может привести к тому, что в момент выбрасывания связанного исключения элементы не будут находиться ни в одной коллекции, будут находиться в одной или в обеих коллекциях. Попытка переместить элементы очереди в неё саму приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время её выполнения.- Определено в:
-
drainToв интерфейсеBlockingQueue<E> - Параметры:
-
c- коллекция, в которую нужно переместить элементы - Возвращает:
- число перемещённых элементов
- Исключения:
-
UnsupportedOperationException- если указанная коллекция не поддерживает добавление элементов -
ClassCastException- если класс элемента этой очереди препятствует его добавлению в указанную коллекцию -
NullPointerException- если указанная коллекция равна null -
IllegalArgumentException- если указанная коллекция является этой очередью или какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию
drainTo
public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueuec может привести к тому, что в момент выбрасывания связанного исключения элементы не будут находиться ни в одной коллекции, будут находиться в одной или в обеих коллекциях. Попытка переместить элементы очереди в неё саму приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время её выполнения.- Определено в:
-
drainToв интерфейсеBlockingQueue<E> - Параметры:
-
c- коллекция, в которую нужно переместить элементы -
maxElements- максимальное число элементов для перемещения - Возвращает:
- число перемещённых элементов
- Исключения:
-
UnsupportedOperationException- если указанная коллекция не поддерживает добавление элементов -
ClassCastException- если класс элемента этой очереди препятствует его добавлению в указанную коллекцию -
NullPointerException- если указанная коллекция равна null -
IllegalArgumentException- если указанная коллекция является этой очередью или какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию
push
public void push(E e)
BlockingDequeIllegalStateException. Этот метод эквивалентен addFirst.
- Определено в:
-
pushв интерфейсеBlockingDeque<E> - Определено в:
-
pushв интерфейсеDeque<E> - Параметры:
-
e- элемент, помещаемый в стек - Исключения:
-
IllegalStateException- если эта двусторонняя очередь заполнена -
NullPointerException- если указанный элемент равен null
pop
public E pop()
DequeЭтот метод эквивалентен Deque.removeFirst().
- Определено в:
-
popв интерфейсеDeque<E> - Возвращает:
- элемент в начале этой двусторонней очереди (который является вершиной стека, представленного этой двусторонней очередью)
- Исключения:
-
NoSuchElementException- если эта двусторонняя очередь пуста
remove
public boolean remove(Object o)
e, для которого выполняется условие o.equals(e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что эквивалентно, если в результате вызова эта двусторонняя очередь изменилась). Этот метод эквивалентен removeFirstOccurrence.
- Определено в:
-
removeв интерфейсеBlockingDeque<E> - Определено в:
-
removeв интерфейсеBlockingQueue<E> - Определено в:
-
removeв интерфейсеCollection<E> - Определено в:
-
removeв интерфейсеDeque<E> - Переопределяет:
-
removeв классеAbstractCollection<E> - Параметры:
-
o- элемент, который следует удалить из этой двусторонней очереди, если он присутствует - Возвращает:
-
true, если эта двусторонняя очередь изменилась в результате вызова
size
public int size()
- Определено в:
-
sizeв интерфейсеBlockingDeque<E> - Определено в:
-
sizeв интерфейсеCollection<E> - Определено в:
-
sizeв интерфейсеDeque<E> - Возвращает:
- число элементов в этой двусторонней очереди
contains
public boolean contains(Object o)
true, если эта двусторонняя очередь содержит указанный элемент. Точнее, возвращает true тогда и только тогда, когда эта двусторонняя очередь содержит хотя бы один элемент e, для которого выполняется условие o.equals(e).- Определено в:
-
containsв интерфейсеBlockingDeque<E> - Определено в:
-
containsв интерфейсеBlockingQueue<E> - Определено в:
-
containsв интерфейсеCollection<E> - Определено в:
-
containsв интерфейсеDeque<E> - Переопределяет:
-
containsв классеAbstractCollection<E> - Параметры:
-
o- объект, наличие которого в этой двусторонней очереди нужно проверить - Возвращает:
-
true, если эта двусторонняя очередь содержит указанный элемент
addAll
public boolean addAll(Collection<? extends E> c)
addAll двусторонней очереди в саму себя приводит к IllegalArgumentException.- Определено в:
-
addAllв интерфейсеCollection<E> - Определено в:
-
addAllв интерфейсеDeque<E> - Переопределяет:
-
addAllв классеAbstractQueue<E> - Параметры:
-
c- элементы, которые нужно добавить в эту двустороннюю очередь - Возвращает:
-
true, если эта двусторонняя очередь изменилась в результате вызова - Исключения:
-
NullPointerException- если указанная коллекция или любой из её элементов равны null -
IllegalArgumentException- если коллекция является этой двусторонней очередью -
IllegalStateException- если эта двусторонняя очередь заполнена - См. также:
toArray
public Object[] toArray()
Возвращаемый массив является «безопасным»: эта двусторонняя очередь не хранит ссылок на него. (Другими словами, этот метод должен выделять новый массив.) Поэтому вызывающий код может свободно изменять возвращённый массив.
Этот метод служит связующим звеном между API на основе массивов и API на основе коллекций.
- Определено в:
-
toArrayв интерфейсеCollection<E> - Переопределяет:
-
toArrayв классеAbstractCollection<E> - Возвращает:
- массив, содержащий все элементы этой двусторонней очереди
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в классеAbstractCollection<E> - Параметры типа:
T- тип компонентов массива, предназначенного для хранения коллекции- Параметры:
-
a- массив, в который следует поместить элементы двусторонней очереди, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа во время выполнения - Возвращает:
- массив, содержащий все элементы этой двусторонней очереди
- Исключения:
-
ArrayStoreException- если тип указанного массива во время выполнения не является супертипом типа каждого элемента этой двусторонней очереди во время выполнения -
NullPointerException- если указанный массив равен null
clear
public void clear()
- Определено в:
-
clearв интерфейсеCollection<E> - Переопределяет:
-
clearв классеAbstractQueue<E>
iterator
public Iterator<E> iterator()
Возвращаемый итератор является слабо согласованным.
- Определено в:
-
iteratorв интерфейсеBlockingDeque<E> - Определено в:
-
iteratorв интерфейсеCollection<E> - Определено в:
-
iteratorв интерфейсеDeque<E> - Определено в:
-
iteratorв интерфейсеIterable<E> - Определено в:
-
iteratorв классеAbstractCollection<E> - Возвращает:
- итератор по элементам этой двусторонней очереди в надлежащем порядке
descendingIterator
public Iterator<E> descendingIterator()
Возвращаемый итератор является слабо согласованным.
- Определено в:
-
descendingIteratorв интерфейсеDeque<E> - Возвращает:
- итератор по элементам этой двусторонней очереди в обратном порядке
spliterator
public Spliterator<E> spliterator()
Spliterator для обхода элементов этой двусторонней очереди. Возвращаемый сплитератор является слабо согласованным.
Spliterator сообщает о характеристиках Spliterator.CONCURRENT, Spliterator.ORDERED и Spliterator.NONNULL.
- Определено в:
-
spliteratorв интерфейсеCollection<E> - Определено в:
-
spliteratorв интерфейсеIterable<E> - Примечание по реализации:
SpliteratorреализуетtrySplit, обеспечивая ограниченный параллелизм.- Возвращает:
Spliteratorдля обхода элементов этой двусторонней очереди- С версии:
- 1.8
forEach
public void forEach(Consumer<? super E> action)
IterableIterable, пока не будут обработаны все элементы или действие не выбросит исключение. Если порядок итерации определён, действия выполняются в этом порядке. Исключения, выброшенные действием, передаются вызывающему коду. Поведение этого метода не определено, если действие выполняет побочные эффекты, изменяющие базовый источник элементов, за исключением случаев, когда переопределяющий класс определил политику конкурентного изменения.
- Определено в:
-
forEachв интерфейсеIterable<E> - Параметры:
-
action- действие, которое нужно выполнить для каждого элемента - Исключения:
-
NullPointerException- если указанное действие равно null
removeIf
public boolean removeIf(Predicate<? super E> filter)
Collection- Определено в:
-
removeIfв интерфейсеCollection<E> - Параметры:
-
filter- предикат, возвращающийtrueдля элементов, которые нужно удалить - Возвращает:
-
true, если были удалены какие-либо элементы - Исключения:
-
NullPointerException- если указанный фильтр равен null
removeAll
public boolean removeAll(Collection<?> c)
AbstractCollection- Определено в:
-
removeAllв интерфейсеCollection<E> - Переопределяет:
-
removeAllв классеAbstractCollection<E> - Параметры:
-
c- коллекция, содержащая элементы, которые нужно удалить из этой коллекции - Возвращает:
-
true, если эта коллекция изменилась в результате вызова - Исключения:
-
NullPointerException- если эта коллекция содержит один или несколько элементов null, а указанная коллекция не поддерживает элементы null (необязательно), или если указанная коллекция равна null - См. также:
retainAll
public boolean retainAll(Collection<?> c)
AbstractCollection- Определено в:
-
retainAllв интерфейсеCollection<E> - Переопределяет:
-
retainAllв классеAbstractCollection<E> - Параметры:
-
c- коллекция, содержащая элементы, которые нужно сохранить в этой коллекции - Возвращает:
-
true, если эта коллекция изменилась в результате вызова - Исключения:
-
NullPointerException- если эта коллекция содержит один или несколько элементов null, а указанная коллекция не допускает элементы null (необязательно), или если указанная коллекция равна null - См. также:
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/LinkedBlockingDeque.html