Spec-Zone.ru › OpenJDK 27

Интерфейс BlockingDeque<E>

Параметры типа:
E - тип элементов, хранящихся в этом деке
Все суперинтерфейсы:
BlockingQueue<E>, Collection<E>, Deque<E>, Iterable<E>, Queue<E>, SequencedCollection<E>
Все известные реализующие классы:
LinkedBlockingDeque
public interface BlockingDeque<E> extends BlockingQueue<E>, Deque<E>
Дек Deque, который дополнительно поддерживает блокирующие операции, ожидающие, пока дек не станет непустым при извлечении элемента, и пока в деке не появится свободное место при сохранении элемента.

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

Сводка методов BlockingDeque
Первый элемент (голова)
Выбрасывает исключение Специальное значение Блокирует Прерывает ожидание по тайм-ауту
Вставка addFirst(e) offerFirst(e) putFirst(e) offerFirst(e, time, unit)
Удаление removeFirst() pollFirst() takeFirst() pollFirst(time, unit)
Просмотр getFirst() peekFirst() не применимо не применимо
Последний элемент (хвост)
Выбрасывает исключение Специальное значение Блокирует Прерывает ожидание по тайм-ауту
Вставка addLast(e) offerLast(e) putLast(e) offerLast(e, time, unit)
Удаление removeLast() pollLast() takeLast() pollLast(time, unit)
Просмотр getLast() peekLast() не применимо не применимо

Как и любая BlockingQueue, BlockingDeque является потокобезопасным, не допускает null-элементы и может иметь ограничение по емкости, а может и не иметь его.

Реализацию BlockingDeque можно напрямую использовать как FIFO-BlockingQueue. Методы, унаследованные от интерфейса BlockingQueue, в точности эквивалентны методам BlockingDeque, как показано в следующей таблице:

Сравнение методов BlockingQueue и BlockingDeque
Метод BlockingQueue Эквивалентный метод BlockingDeque
Вставка add(e) addLast(e)
offer(e) offerLast(e)
put(e) putLast(e)
offer(e, time, unit) offerLast(e, time, unit)
Удаление remove() removeFirst()
poll() pollFirst()
take() takeFirst()
poll(time, unit) pollFirst(time, unit)
Просмотр element() getFirst()
peek() peekFirst()

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

Этот интерфейс входит в фреймворк коллекций Java.

С версии:
1.6

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

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в очередь, представленную этим деком (иначе говоря, в хвост этого дека), если это можно сделать немедленно, не нарушая ограничений емкости; при успешном выполнении возвращает true, а если свободного места нет, выбрасывает IllegalStateException.
void addFirst(E e)
Вставляет указанный элемент в начало этого дека, если это можно сделать немедленно, не нарушая ограничений емкости; если свободного места нет, выбрасывает IllegalStateException.
void addLast(E e)
Вставляет указанный элемент в конец этого дека, если это можно сделать немедленно, не нарушая ограничений емкости; если свободного места нет, выбрасывает IllegalStateException.
boolean contains(Object o)
Возвращает true, если этот дек содержит указанный элемент.
E element()
Извлекает голову очереди, представленной этим деком (иначе говоря, первый элемент этого дека), но не удаляет ее.
Iterator<E> iterator()
Возвращает итератор по элементам этого дека в правильном порядке.
boolean offer(E e)
Вставляет указанный элемент в очередь, представленную этим деком (иначе говоря, в хвост этого дека), если это можно сделать немедленно, не нарушая ограничений емкости; при успешном выполнении возвращает true, а если свободного места нет — false.
boolean offer(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент в очередь, представленную этим деком (иначе говоря, в хвост этого дека), при необходимости ожидая указанное время, пока не появится свободное место.
boolean offerFirst(E e)
Вставляет указанный элемент в начало этого дека, если это можно сделать немедленно, не нарушая ограничений емкости; при успешном выполнении возвращает true, а если свободного места нет — false.
boolean offerFirst(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент в начало этого дека, при необходимости ожидая указанное время, пока не появится свободное место.
boolean offerLast(E e)
Вставляет указанный элемент в конец этого дека, если это можно сделать немедленно, не нарушая ограничений емкости; при успешном выполнении возвращает true, а если свободного места нет — false.
boolean offerLast(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент в конец этого дека, при необходимости ожидая указанное время, пока не появится свободное место.
E peek()
Извлекает голову очереди, представленной этим деком (иначе говоря, первый элемент этого дека), но не удаляет ее; если дек пуст, возвращает null.
E poll()
Извлекает и удаляет голову очереди, представленной этим деком (иначе говоря, первый элемент этого дека); если дек пуст, возвращает null.
E poll(long timeout, TimeUnit unit)
Извлекает и удаляет голову очереди, представленной этим деком (иначе говоря, первый элемент этого дека), при необходимости ожидая указанное время, пока элемент не станет доступен.
E pollFirst(long timeout, TimeUnit unit)
Извлекает и удаляет первый элемент этого дека, при необходимости ожидая указанное время, пока элемент не станет доступен.
E pollLast(long timeout, TimeUnit unit)
Извлекает и удаляет последний элемент этого дека, при необходимости ожидая указанное время, пока элемент не станет доступен.
void push(E e)
Помещает элемент в стек, представленный этим деком (иначе говоря, в голову этого дека), если это можно сделать немедленно, не нарушая ограничений емкости; если свободного места нет, выбрасывает IllegalStateException.
void put(E e)
Вставляет указанный элемент в очередь, представленную этим деком (иначе говоря, в хвост этого дека), при необходимости ожидая появления свободного места.
void putFirst(E e)
Вставляет указанный элемент в начало этого дека, при необходимости ожидая появления свободного места.
void putLast(E e)
Вставляет указанный элемент в конец этого дека, при необходимости ожидая появления свободного места.
E remove()
Извлекает и удаляет голову очереди, представленной этим деком (иначе говоря, первый элемент этого дека).
boolean remove(Object o)
Удаляет первое вхождение указанного элемента из этого дека.
boolean removeFirstOccurrence(Object o)
Удаляет первое вхождение указанного элемента из этого дека.
boolean removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента из этого дека.
int size()
Возвращает количество элементов в этом деке.
E take()
Извлекает и удаляет голову очереди, представленной этим деком (иначе говоря, первый элемент этого дека), при необходимости ожидая появления элемента.
E takeFirst()
Извлекает и удаляет первый элемент этого дека, при необходимости ожидая появления элемента.
E takeLast()
Извлекает и удаляет последний элемент этого дека, при необходимости ожидая появления элемента.

Методы, объявленные в интерфейсе BlockingQueue

drainTo, drainTo, remainingCapacity
Модификатор и тип Метод Описание
int drainTo(Collection<? super E> c)
Удаляет из этой очереди все доступные элементы и добавляет их в указанную коллекцию.
int drainTo(Collection<? super E> c, int maxElements)
Удаляет из этой очереди не более указанного количества доступных элементов и добавляет их в указанную коллекцию.
int remainingCapacity()
Возвращает количество дополнительных элементов, которые эта очередь может принять без блокировки в идеальных условиях (при отсутствии ограничений по памяти или ресурсам), либо Integer.MAX_VALUE, если внутреннее ограничение отсутствует.

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

clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArray, toArray
Модификатор и тип Метод Описание
void clear()
Удаляет все элементы из этой коллекции (необязательная операция).
boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
boolean equals(Object o)
Сравнивает указанный объект с этой коллекцией на равенство.
int hashCode()
Возвращает значение хеш-кода этой коллекции.
boolean isEmpty()
Возвращает true, если эта коллекция не содержит элементов.
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция.
boolean removeAll(Collection<?> c)
Удаляет из этой коллекции все элементы, которые также содержатся в указанной коллекции (необязательная операция).
default boolean removeIf(Predicate<? super E> filter)
Удаляет из этой коллекции все элементы, удовлетворяющие заданному предикату (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет в этой коллекции только элементы, содержащиеся в указанной коллекции (необязательная операция).
default Spliterator<E> spliterator()
Создает Spliterator для элементов этой коллекции.
default Stream<E> stream()
Возвращает последовательный Stream, источником которого является эта коллекция.
Object[] toArray()
Возвращает массив, содержащий все элементы этой коллекции.
default <T> T[] toArray(IntFunction<T[]> generator)
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой коллекции; тип возвращаемого массива во время выполнения соответствует типу указанного массива.

Методы, объявленные в интерфейсе Deque

addAll, descendingIterator, getFirst, getLast, peekFirst, peekLast, pollFirst, pollLast, pop, removeFirst, removeLast, reversed
Модификатор и тип Метод Описание
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в конец этого дека, как если бы для каждого из них в порядке, возвращаемом итератором коллекции, вызывался метод Deque.addLast(E).
Iterator<E> descendingIterator()
Возвращает итератор по элементам этого дека в обратном порядке.
E getFirst()
Извлекает первый элемент этого дека, но не удаляет его.
E getLast()
Извлекает последний элемент этого дека, но не удаляет его.
E peekFirst()
Извлекает первый элемент этого дека, но не удаляет его; если дек пуст, возвращает null.
E peekLast()
Извлекает последний элемент этого дека, но не удаляет его; если дек пуст, возвращает null.
E pollFirst()
Извлекает и удаляет первый элемент этого дека; если дек пуст, возвращает null.
E pollLast()
Извлекает и удаляет последний элемент этого дека; если дек пуст, возвращает null.
E pop()
Извлекает элемент из стека, представленного этим деком.
E removeFirst()
Извлекает и удаляет первый элемент этого дека.
E removeLast()
Извлекает и удаляет последний элемент этого дека.
default Deque<E> reversed()
Возвращает упорядоченное в обратном порядке представление этой коллекции.

Методы, объявленные в интерфейсе Iterable

forEach
Модификатор и тип Метод Описание
default void forEach(Consumer<? super E> action)
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не выбросит исключение.

Подробное описание методов

addFirst

void addFirst(E e)
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений вместимости; если свободного места нет, выбрасывает IllegalStateException. При использовании двусторонней очереди с ограниченной вместимостью обычно предпочтительнее использовать offerFirst.
Указано в:
addFirst в интерфейсе Deque<E>
Указано в:
addFirst в интерфейсе SequencedCollection<E>
Параметры:
e - добавляемый элемент
Исключения:
IllegalStateException - если элемент нельзя добавить сейчас из-за ограничений вместимости
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

addLast

void addLast(E e)
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений вместимости; если свободного места нет, выбрасывает IllegalStateException. При использовании двусторонней очереди с ограниченной вместимостью обычно предпочтительнее использовать offerLast.
Указано в:
addLast в интерфейсе Deque<E>
Указано в:
addLast в интерфейсе SequencedCollection<E>
Параметры:
e - добавляемый элемент
Исключения:
IllegalStateException - если элемент нельзя добавить сейчас из-за ограничений вместимости
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

offerFirst

boolean offerFirst(E e)
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений вместимости; в случае успеха возвращает true, а если свободного места нет — false. При использовании двусторонней очереди с ограниченной вместимостью этот метод обычно предпочтительнее метода addFirst, который может не вставить элемент только выбросив исключение.
Указано в:
offerFirst в интерфейсе Deque<E>
Параметры:
e - добавляемый элемент
Возвращает:
true, если элемент был добавлен в эту двустороннюю очередь, иначе false
Исключения:
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

offerLast

boolean offerLast(E e)
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений вместимости; в случае успеха возвращает true, а если свободного места нет — false. При использовании двусторонней очереди с ограниченной вместимостью этот метод обычно предпочтительнее метода addLast, который может не вставить элемент только выбросив исключение.
Указано в:
offerLast в интерфейсе Deque<E>
Параметры:
e - добавляемый элемент
Возвращает:
true, если элемент был добавлен в эту двустороннюю очередь, иначе false
Исключения:
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

putFirst

void putFirst(E e) throws InterruptedException
Вставляет указанный элемент в начало этой двусторонней очереди, при необходимости ожидая освобождения места.
Параметры:
e - добавляемый элемент
Исключения:
InterruptedException - если ожидание было прервано
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

putLast

void putLast(E e) throws InterruptedException
Вставляет указанный элемент в конец этой двусторонней очереди, при необходимости ожидая освобождения места.
Параметры:
e - добавляемый элемент
Исключения:
InterruptedException - если ожидание было прервано
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

offerFirst

boolean offerFirst(E e, long timeout, TimeUnit unit) throws InterruptedException
Вставляет указанный элемент в начало этой двусторонней очереди, при необходимости ожидая освобождения места в течение указанного времени ожидания.
Параметры:
e - добавляемый элемент
timeout - время ожидания до прекращения попыток в единицах unit
unit - TimeUnit, определяющий, как интерпретировать параметр timeout
Возвращает:
true в случае успеха или false, если указанное время ожидания истекло до освобождения места
Исключения:
InterruptedException - если ожидание было прервано
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

offerLast

boolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException
Вставляет указанный элемент в конец этой двусторонней очереди, при необходимости ожидая освобождения места в течение указанного времени ожидания.
Параметры:
e - добавляемый элемент
timeout - время ожидания до прекращения попыток в единицах unit
unit - TimeUnit, определяющий, как интерпретировать параметр timeout
Возвращает:
true в случае успеха или false, если указанное время ожидания истекло до освобождения места
Исключения:
InterruptedException - если ожидание было прервано
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

takeFirst

E takeFirst() throws InterruptedException
Извлекает и удаляет первый элемент этой двусторонней очереди, при необходимости ожидая появления элемента.
Возвращает:
первый элемент этой двусторонней очереди
Исключения:
InterruptedException - если ожидание было прервано

takeLast

E takeLast() throws InterruptedException
Извлекает и удаляет последний элемент этой двусторонней очереди, при необходимости ожидая появления элемента.
Возвращает:
последний элемент этой двусторонней очереди
Исключения:
InterruptedException - если ожидание было прервано

pollFirst

E pollFirst(long timeout, TimeUnit unit) throws InterruptedException
Извлекает и удаляет первый элемент этой двусторонней очереди, при необходимости ожидая появления элемента в течение указанного времени ожидания.
Параметры:
timeout - время ожидания до прекращения попыток в единицах unit
unit - TimeUnit, определяющий, как интерпретировать параметр timeout
Возвращает:
первый элемент этой двусторонней очереди или null, если указанное время ожидания истекло до появления элемента
Исключения:
InterruptedException - если ожидание было прервано

pollLast

E pollLast(long timeout, TimeUnit unit) throws InterruptedException
Извлекает и удаляет последний элемент этой двусторонней очереди, при необходимости ожидая появления элемента в течение указанного времени ожидания.
Параметры:
timeout - время ожидания до прекращения попыток в единицах unit
unit - TimeUnit, определяющий, как интерпретировать параметр timeout
Возвращает:
последний элемент этой двусторонней очереди или null, если указанное время ожидания истекло до появления элемента
Исключения:
InterruptedException - если ожидание было прервано

removeFirstOccurrence

boolean removeFirstOccurrence(Object o)
Удаляет первое вхождение указанного элемента из этой двусторонней очереди. Если очередь не содержит этот элемент, она остается неизменной. Точнее, удаляет первый элемент e, для которого выполняется условие o.equals(e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что равнозначно, если в результате вызова очередь изменилась).
Указано в:
removeFirstOccurrence в интерфейсе Deque<E>
Параметры:
o - элемент, который следует удалить из этой двусторонней очереди, если он присутствует
Возвращает:
true, если в результате вызова элемент был удален
Исключения:
ClassCastException - если класс указанного элемента несовместим с этой двусторонней очередью (необязательно)
NullPointerException - если указанный элемент равен null (необязательно)

removeLastOccurrence

boolean removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента из этой двусторонней очереди. Если очередь не содержит этот элемент, она остается неизменной. Точнее, удаляет последний элемент e, для которого выполняется условие o.equals(e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что равнозначно, если в результате вызова очередь изменилась).
Указано в:
removeLastOccurrence в интерфейсе Deque<E>
Параметры:
o - элемент, который следует удалить из этой двусторонней очереди, если он присутствует
Возвращает:
true, если в результате вызова элемент был удален
Исключения:
ClassCastException - если класс указанного элемента несовместим с этой двусторонней очередью (необязательно)
NullPointerException - если указанный элемент равен null (необязательно)

add

boolean add(E e)
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в конец этой двусторонней очереди), если это можно сделать немедленно, не нарушая ограничений вместимости; в случае успеха возвращает true, а если свободного места нет, выбрасывает IllegalStateException. При использовании двусторонней очереди с ограниченной вместимостью обычно предпочтительнее использовать offer.

Этот метод эквивалентен addLast.

Указано в:
add в интерфейсе BlockingQueue<E>
Указано в:
add в интерфейсе Collection<E>
Указано в:
add в интерфейсе Deque<E>
Указано в:
add в интерфейсе Queue<E>
Параметры:
e - добавляемый элемент
Возвращает:
true (как указано в Collection.add(E))
Исключения:
IllegalStateException - если элемент нельзя добавить сейчас из-за ограничений вместимости
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

offer

boolean offer(E e)
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в конец этой двусторонней очереди), если это можно сделать немедленно, не нарушая ограничений вместимости; в случае успеха возвращает true, а если свободного места нет — false. При использовании двусторонней очереди с ограниченной вместимостью этот метод обычно предпочтительнее метода add(E), который может не вставить элемент только выбросив исключение.

Этот метод эквивалентен offerLast.

Указано в:
offer в интерфейсе BlockingQueue<E>
Указано в:
offer в интерфейсе Deque<E>
Указано в:
offer в интерфейсе Queue<E>
Параметры:
e - добавляемый элемент
Возвращает:
true, если элемент был добавлен в эту очередь, иначе false
Исключения:
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

put

void put(E e) throws InterruptedException
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в конец этой двусторонней очереди), при необходимости ожидая освобождения места.

Этот метод эквивалентен putLast.

Указано в:
put в интерфейсе BlockingQueue<E>
Параметры:
e - добавляемый элемент
Исключения:
InterruptedException - если ожидание было прервано
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

offer

boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в конец этой двусторонней очереди), при необходимости ожидая освобождения места в течение указанного времени ожидания.

Этот метод эквивалентен offerLast.

Указано в:
offer в интерфейсе BlockingQueue<E>
Параметры:
e - добавляемый элемент
timeout - время ожидания до прекращения попыток в единицах unit
unit - TimeUnit, определяющий, как интерпретировать параметр timeout
Возвращает:
true, если элемент был добавлен в эту двустороннюю очередь, иначе false
Исключения:
InterruptedException - если ожидание было прервано
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

remove

E remove()
Извлекает и удаляет начало очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди). Этот метод отличается от poll() только тем, что выбрасывает исключение, если двусторонняя очередь пуста.

Этот метод эквивалентен removeFirst.

Указано в:
remove в интерфейсе Deque<E>
Указано в:
remove в интерфейсе Queue<E>
Возвращает:
начало очереди, представленной этой двусторонней очередью
Исключения:
NoSuchElementException - если эта двусторонняя очередь пуста

poll

E poll()
Извлекает и удаляет начало очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), или возвращает null, если эта двусторонняя очередь пуста.

Этот метод эквивалентен Deque.pollFirst().

Указано в:
poll в интерфейсе Deque<E>
Указано в:
poll в интерфейсе Queue<E>
Возвращает:
первый элемент этой двусторонней очереди или null, если она пуста

take

E take() throws InterruptedException
Извлекает и удаляет начало очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), при необходимости ожидая появления элемента.

Этот метод эквивалентен takeFirst.

Указано в:
take в интерфейсе BlockingQueue<E>
Возвращает:
первый элемент этой двусторонней очереди
Исключения:
InterruptedException - если ожидание было прервано

poll

E poll(long timeout, TimeUnit unit) throws InterruptedException
Извлекает и удаляет начало очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), при необходимости ожидая появления элемента в течение указанного времени ожидания.

Этот метод эквивалентен pollFirst.

Указано в:
poll в интерфейсе BlockingQueue<E>
Параметры:
timeout - время ожидания до прекращения попыток в единицах unit
unit - TimeUnit, определяющий, как интерпретировать параметр timeout
Возвращает:
первый элемент этой двусторонней очереди или null, если указанное время ожидания истекло до появления элемента
Исключения:
InterruptedException - если ожидание было прервано

element

E element()
Извлекает, но не удаляет начало очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди). Этот метод отличается от peek только тем, что выбрасывает исключение, если двусторонняя очередь пуста.

Этот метод эквивалентен getFirst.

Указано в:
element в интерфейсе Deque<E>
Указано в:
element в интерфейсе Queue<E>
Возвращает:
первый элемент этой двусторонней очереди
Исключения:
NoSuchElementException - если эта двусторонняя очередь пуста

peek

E peek()
Извлекает, но не удаляет начало очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), или возвращает null, если эта двусторонняя очередь пуста.

Этот метод эквивалентен peekFirst.

Указано в:
peek в интерфейсе Deque<E>
Указано в:
peek в интерфейсе Queue<E>
Возвращает:
первый элемент этой двусторонней очереди или null, если она пуста

remove

boolean remove(Object o)
Удаляет первое вхождение указанного элемента из этой двусторонней очереди. Если очередь не содержит этот элемент, она остается неизменной. Точнее, удаляет первый элемент e, для которого выполняется условие o.equals(e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что равнозначно, если в результате вызова очередь изменилась).

Этот метод эквивалентен removeFirstOccurrence.

Указано в:
remove в интерфейсе BlockingQueue<E>
Указано в:
remove в интерфейсе Collection<E>
Указано в:
remove в интерфейсе Deque<E>
Параметры:
o - элемент, который следует удалить из этой двусторонней очереди, если он присутствует
Возвращает:
true, если в результате вызова эта двусторонняя очередь изменилась
Исключения:
ClassCastException - если класс указанного элемента несовместим с этой двусторонней очередью (необязательно)
NullPointerException - если указанный элемент равен null (необязательно)

contains

boolean contains(Object o)
Возвращает true, если эта двусторонняя очередь содержит указанный элемент. Точнее, возвращает true тогда и только тогда, когда эта двусторонняя очередь содержит хотя бы один элемент e, для которого выполняется условие o.equals(e).
Указано в:
contains в интерфейсе BlockingQueue<E>
Указано в:
contains в интерфейсе Collection<E>
Указано в:
contains в интерфейсе Deque<E>
Параметры:
o - объект, наличие которого в этой двусторонней очереди проверяется
Возвращает:
true, если эта двусторонняя очередь содержит указанный элемент
Исключения:
ClassCastException - если класс указанного элемента несовместим с этой двусторонней очередью (необязательно)
NullPointerException - если указанный элемент равен null (необязательно)

size

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

iterator

Iterator<E> iterator()
Возвращает итератор по элементам этой двусторонней очереди в правильном порядке. Элементы будут возвращаться по порядку: от первого (начала) до последнего (конца).
Указано в:
iterator в интерфейсе Collection<E>
Указано в:
iterator в интерфейсе Deque<E>
Указано в:
iterator в интерфейсе Iterable<E>
Возвращает:
итератор по элементам этой двусторонней очереди в правильном порядке

push

void push(E e)
Помещает элемент в стек, представленный этой двусторонней очередью (то есть в начало этой двусторонней очереди), если это можно сделать немедленно, не нарушая ограничений вместимости; если свободного места нет, выбрасывает IllegalStateException.

Этот метод эквивалентен addFirst.

Указано в:
push в интерфейсе Deque<E>
Параметры:
e - помещаемый в стек элемент
Исключения:
IllegalStateException - если элемент нельзя добавить сейчас из-за ограничений вместимости
ClassCastException - если класс указанного элемента не позволяет добавить его в эту двустороннюю очередь
NullPointerException - если указанный элемент равен null
IllegalArgumentException - если какое-либо свойство указанного элемента не позволяет добавить его в эту двустороннюю очередь

Сообщить об ошибке или предложить улучшение
Для получения дополнительных справочных материалов по API и документации для разработчиков см. Документацию Java SE, которая содержит более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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