Spec-Zone.ru › OpenJDK 27

Класс LinkedBlockingDeque<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
java.util.concurrent.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 Collections Framework.

С момента выпуска:
1.6
См. также:
  • Сериализованная форма

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

Конструктор Описание
LinkedBlockingDeque()
Создаёт LinkedBlockingDeque с ёмкостью Integer.MAX_VALUE.
LinkedBlockingDeque(int capacity)
Создаёт LinkedBlockingDeque с указанной (фиксированной) ёмкостью.
LinkedBlockingDeque(Collection<? extends E> c)
Создаёт LinkedBlockingDeque с ёмкостью Integer.MAX_VALUE, изначально содержащую элементы указанной коллекции, добавленные в порядке обхода итератора этой коллекции.

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

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в конец этой двусторонней очереди, если это не нарушает ограничения ёмкости.
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в конец этой двусторонней очереди в порядке, в котором их возвращает итератор указанной коллекции.
void addFirst(E e)
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничения ёмкости; если свободного места нет, выбрасывает IllegalStateException.
void addLast(E e)
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничения ёмкости; если свободного места нет, выбрасывает IllegalStateException.
void clear()
Атомарно удаляет все элементы из этой двусторонней очереди.
boolean contains(Object o)
Возвращает true, если эта двусторонняя очередь содержит указанный элемент.
Iterator<E> descendingIterator()
Возвращает итератор по элементам этой двусторонней очереди в обратном порядке.
int drainTo(Collection<? super E> c)
Удаляет все доступные элементы из этой очереди и добавляет их в указанную коллекцию.
int drainTo(Collection<? super E> c, int maxElements)
Удаляет из этой очереди не более указанного количества доступных элементов и добавляет их в указанную коллекцию.
E element()
Получает, но не удаляет голову очереди, представленной этой двусторонней очередью.
void forEach(Consumer<? super E> action)
Выполняет указанное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не выбросит исключение.
E getFirst()
Получает, но не удаляет первый элемент этой двусторонней очереди.
E getLast()
Получает, но не удаляет последний элемент этой двусторонней очереди.
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 peekFirst()
Получает, но не удаляет первый элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста.
E peekLast()
Получает, но не удаляет последний элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста.
E poll()
Получает и удаляет голову очереди, представленной этой двусторонней очередью (то есть её первый элемент), или возвращает null, если эта двусторонняя очередь пуста.
E poll(long timeout, TimeUnit unit)
Получает и удаляет голову очереди, представленной этой двусторонней очередью (то есть её первый элемент), при необходимости ожидая появления элемента в течение указанного времени ожидания.
E pollFirst()
Получает и удаляет первый элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста.
E pollFirst(long timeout, TimeUnit unit)
Получает и удаляет первый элемент этой двусторонней очереди, при необходимости ожидая появления элемента в течение указанного времени ожидания.
E pollLast()
Получает и удаляет последний элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста.
E pollLast(long timeout, TimeUnit unit)
Получает и удаляет последний элемент этой двусторонней очереди, при необходимости ожидая появления элемента в течение указанного времени ожидания.
E pop()
Извлекает элемент из стека, представленного этой двусторонней очередью.
void push(E e)
Помещает элемент в стек, представленный этой двусторонней очередью (то есть в её начало), если это можно сделать немедленно, не нарушая ограничения ёмкости; если свободного места нет, выбрасывает IllegalStateException.
void put(E e)
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в её конец), при необходимости ожидая освобождения места.
void putFirst(E e)
Вставляет указанный элемент в начало этой двусторонней очереди, при необходимости ожидая освобождения места.
void putLast(E e)
Вставляет указанный элемент в конец этой двусторонней очереди, при необходимости ожидая освобождения места.
int remainingCapacity()
Возвращает количество дополнительных элементов, которые эта двусторонняя очередь в идеальных условиях (при отсутствии ограничений по памяти или ресурсам) может принять без блокировки.
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()
Возвращает Spliterator для элементов этой двусторонней очереди.
E take()
Получает и удаляет голову очереди, представленной этой двусторонней очередью (то есть её первый элемент), при необходимости ожидая появления элемента.
E takeFirst()
Получает и удаляет первый элемент этой двусторонней очереди, при необходимости ожидая появления элемента.
E takeLast()
Получает и удаляет последний элемент этой двусторонней очереди, при необходимости ожидая появления элемента.
Object[] toArray()
Возвращает массив, содержащий все элементы этой двусторонней очереди в надлежащем порядке (от первого элемента к последнему).
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой двусторонней очереди в надлежащем порядке; тип возвращаемого массива во время выполнения совпадает с типом указанного массива.

Методы, объявленные в классе AbstractCollection

containsAll, isEmpty, toString
Модификатор и тип Метод Описание
boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
boolean isEmpty()
Возвращает true, если эта коллекция не содержит элементов.
String toString()
Возвращает строковое представление этой коллекции.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в одной из будущих версий.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс этого Object во время выполнения.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения заданного промежутка реального времени.

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

equals, hashCode, parallelStream, stream, toArray
Модификатор и тип Метод Описание
boolean equals(Object o)
Сравнивает указанный объект с этой коллекцией на равенство.
int hashCode()
Возвращает значение хеш-кода этой коллекции.
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция.
default Stream<E> stream()
Возвращает последовательный Stream, источником которого является эта коллекция.
default <T> T[] toArray(IntFunction<T[]> generator)
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator.

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

reversed
Модификатор и тип Метод Описание
default Deque<E> reversed()
Возвращает представление этой коллекции в обратном порядке.

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

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)
Описание скопировано из интерфейса: BlockingDeque
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений емкости; если свободного места нет, выбрасывает IllegalStateException. При использовании двусторонней очереди с ограниченной емкостью обычно предпочтительнее использовать offerFirst.
Определено в:
addFirst в интерфейсе BlockingDeque<E>
Определено в:
addFirst в интерфейсе Deque<E>
Определено в:
addFirst в интерфейсе SequencedCollection<E>
Параметры:
e — добавляемый элемент
Исключения:
IllegalStateException — если эта двусторонняя очередь заполнена
NullPointerException — если указанный элемент равен null

addLast

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

offerFirst

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

offerLast

public boolean offerLast(E e)
Описание скопировано из интерфейса: BlockingDeque
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений емкости; в случае успеха возвращает true, а если свободного места нет — 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()
Описание скопировано из интерфейса: Deque
Извлекает и удаляет первый элемент этой двусторонней очереди. Этот метод отличается от pollFirst только тем, что выбрасывает исключение, если двусторонняя очередь пуста.
Определено в:
removeFirst в интерфейсе Deque<E>
Определено в:
removeFirst в интерфейсе SequencedCollection<E>
Возвращает:
голову этой двусторонней очереди
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

removeLast

public E removeLast()
Описание скопировано из интерфейса: Deque
Извлекает и удаляет последний элемент этой двусторонней очереди. Этот метод отличается от pollLast только тем, что выбрасывает исключение, если двусторонняя очередь пуста.
Определено в:
removeLast в интерфейсе Deque<E>
Определено в:
removeLast в интерфейсе SequencedCollection<E>
Возвращает:
хвост этой двусторонней очереди
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

pollFirst

public E pollFirst()
Описание скопировано из интерфейса: Deque
Извлекает и удаляет первый элемент этой двусторонней очереди или возвращает null, если двусторонняя очередь пуста.
Определено в:
pollFirst в интерфейсе Deque<E>
Возвращает:
голову этой двусторонней очереди или null, если двусторонняя очередь пуста

pollLast

public E pollLast()
Описание скопировано из интерфейса: Deque
Извлекает и удаляет последний элемент этой двусторонней очереди или возвращает null, если двусторонняя очередь пуста.
Определено в:
pollLast в интерфейсе Deque<E>
Возвращает:
хвост этой двусторонней очереди или null, если двусторонняя очередь пуста

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()
Описание скопировано из интерфейса: Deque
Извлекает, но не удаляет первый элемент этой двусторонней очереди. Этот метод отличается от peekFirst только тем, что выбрасывает исключение, если двусторонняя очередь пуста.
Определено в:
getFirst в интерфейсе Deque<E>
Определено в:
getFirst в интерфейсе SequencedCollection<E>
Возвращает:
голову этой двусторонней очереди
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

getLast

public E getLast()
Описание скопировано из интерфейса: Deque
Извлекает, но не удаляет последний элемент этой двусторонней очереди. Этот метод отличается от peekLast только тем, что выбрасывает исключение, если двусторонняя очередь пуста.
Определено в:
getLast в интерфейсе Deque<E>
Определено в:
getLast в интерфейсе SequencedCollection<E>
Возвращает:
хвост этой двусторонней очереди
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

peekFirst

public E peekFirst()
Описание скопировано из интерфейса: Deque
Извлекает, но не удаляет первый элемент этой двусторонней очереди или возвращает null, если двусторонняя очередь пуста.
Определено в:
peekFirst в интерфейсе Deque<E>
Возвращает:
голову этой двусторонней очереди или null, если двусторонняя очередь пуста

peekLast

public E peekLast()
Описание скопировано из интерфейса: Deque
Извлекает, но не удаляет последний элемент этой двусторонней очереди или возвращает null, если двусторонняя очередь пуста.
Определено в:
peekLast в интерфейсе Deque<E>
Возвращает:
хвост этой двусторонней очереди или null, если двусторонняя очередь пуста

removeFirstOccurrence

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

removeLastOccurrence

public boolean removeLastOccurrence(Object o)
Описание скопировано из интерфейса: BlockingDeque
Удаляет последнее вхождение указанного элемента из этой двусторонней очереди. Если очередь не содержит этот элемент, она не изменяется. Формально удаляется последний элемент e, для которого выполняется условие 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().

Определено в:
poll в интерфейсе BlockingDeque<E>
Определено в:
poll в интерфейсе Deque<E>
Определено в:
poll в интерфейсе Queue<E>
Возвращает:
голову этой двусторонней очереди или null, если двусторонняя очередь пуста

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.

Определено в:
peek в интерфейсе BlockingDeque<E>
Определено в:
peek в интерфейсе Deque<E>
Определено в:
peek в интерфейсе Queue<E>
Возвращает:
начало этой двусторонней очереди или null, если эта двусторонняя очередь пуста

remainingCapacity

public int remainingCapacity()
Возвращает количество дополнительных элементов, которые эта двусторонняя очередь в идеальных условиях (при отсутствии ограничений по памяти или ресурсам) может принять без блокировки. Это значение всегда равно начальной емкости этой двусторонней очереди за вычетом текущего size этой двусторонней очереди.

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

Определено в:
remainingCapacity в интерфейсе BlockingQueue<E>
Возвращает:
оставшуюся емкость

drainTo

public int drainTo(Collection<? super E> c)
Описание скопировано из интерфейса: BlockingQueue
Удаляет все доступные элементы из этой очереди и добавляет их в указанную коллекцию. Эта операция может быть эффективнее, чем многократное извлечение элементов из очереди. Сбой при попытке добавить элементы в коллекцию c может привести к тому, что после выбрасывания соответствующего исключения элементы окажутся ни в одной из коллекций, в одной из них или в обеих. Попытка перенести элементы очереди в нее же приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время ее выполнения.
Определено в:
drainTo в интерфейсе BlockingQueue<E>
Параметры:
c - коллекция, в которую нужно перенести элементы
Возвращает:
количество перенесенных элементов
Выбрасывает:
UnsupportedOperationException - если указанная коллекция не поддерживает добавление элементов
ClassCastException - если класс элемента этой очереди не позволяет добавить его в указанную коллекцию
NullPointerException - если указанная коллекция равна null
IllegalArgumentException - если указанная коллекция является этой очередью или если какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию

drainTo

public int drainTo(Collection<? super E> c, int maxElements)
Описание скопировано из интерфейса: BlockingQueue
Удаляет из этой очереди не более указанного количества доступных элементов и добавляет их в указанную коллекцию. Сбой при попытке добавить элементы в коллекцию c может привести к тому, что после выбрасывания соответствующего исключения элементы окажутся ни в одной из коллекций, в одной из них или в обеих. Попытка перенести элементы очереди в нее же приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время ее выполнения.
Определено в:
drainTo в интерфейсе BlockingQueue<E>
Параметры:
c - коллекция, в которую нужно перенести элементы
maxElements - максимальное количество элементов для переноса
Возвращает:
количество перенесенных элементов
Выбрасывает:
UnsupportedOperationException - если указанная коллекция не поддерживает добавление элементов
ClassCastException - если класс элемента этой очереди не позволяет добавить его в указанную коллекцию
NullPointerException - если указанная коллекция равна null
IllegalArgumentException - если указанная коллекция является этой очередью или если какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию

push

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

Этот метод эквивалентен 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 - если эта двусторонняя очередь заполнена
См. также:
  • add(Object)

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)
Описание скопировано из интерфейса: 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

removeAll

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

retainAll

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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