Spec-Zone.ru › OpenJDK 24

Класс LinkedBlockingDeque<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
java.util.concurrent.LinkedBlockingDeque<E>
Type Parameters:
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
Необязательно ограниченная очередь с блокировкой на основе связанных узлов.

Необязательный аргумент capacity bound служит способом предотвращения чрезмерного расширения. Емкость, если не указана, равна Integer.MAX_VALUE. Связанные узлы динамически создаются при каждой вставке, если это не приведет к превышению емкости.

Большинство операций выполняются за константное время (исключая время блокировки). К исключениям относятся remove, removeFirstOccurrence, removeLastOccurrence, contains, iterator.remove() и операции по обработке множества элементов, которые выполняются за линейное время.

Этот класс и его итератор реализуют все *необязательные* методы интерфейсов Collection и Iterator.

Этот класс является частью Фреймворка Java Collections.

Since:
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()
Извлекает и удаляет голову очереди, представленной этим deque (то есть первый элемент этого deque), ожидая, если необходимо, пока элемент не станет доступным.
E takeFirst()
Извлекает и удаляет первый элемент этого deque, ожидая, если необходимо, пока элемент не станет доступным.
E takeLast()
Извлекает и удаляет последний элемент этого deque, ожидая, если необходимо, пока элемент не станет доступным.
Object[] toArray()
Возвращает массив, содержащий все элементы этого deque в правильной последовательности (от первого к последнему элементу).
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого deque в правильной последовательности; тип времени выполнения возвращаемого массива — это тип указанного массива.

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

containsAll, isEmpty, toString

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

containsAll, equals, hashCode, isEmpty, parallelStream, stream, toArray

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

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

Specified by:
add в интерфейсе BlockingDeque<E>
Specified by:
add в интерфейсе BlockingQueue<E>
Specified by:
add в интерфейсе Collection<E>
Specified by:
add в интерфейсе Deque<E>
Specified by:
add в интерфейсе Queue<E>
Overrides:
add в классе AbstractQueue<E>
Parameters:
e - добавляемый элемент
Returns:
true (как указано в Collection.add(E))
Throws:
IllegalStateException - если данная очередь-дек заполнена
NullPointerException - если указанный элемент имеет значение null

offer

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

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

Specified by:
offer в интерфейсе BlockingDeque<E>
Specified by:
offer в интерфейсе BlockingQueue<E>
Specified by:
offer в интерфейсе Deque<E>
Specified by:
offer в интерфейсе Queue<E>
Parameters:
e - добавляемый элемент
Returns:
true, если элемент был добавлен в очередь, иначе false
Throws:
NullPointerException - если указанный элемент имеет значение null

put

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

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

Specified by:
put в интерфейсе BlockingDeque<E>
Specified by:
put в интерфейсе BlockingQueue<E>
Parameters:
e - добавляемый элемент
Throws:
NullPointerException - если указанный элемент имеет значение null
InterruptedException - если прервано ожидание

offer

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

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

Specified by:
offer в интерфейсе BlockingDeque<E>
Specified by:
offer в интерфейсе BlockingQueue<E>
Parameters:
e - добавляемый элемент
timeout - время ожидания, прежде чем отказаться, в единицах unit
unit - TimeUnit определяющий, как интерпретировать параметр timeout
Returns:
true, если элемент был добавлен в этот дек, иначе false
Throws:
NullPointerException - если указанный элемент имеет значение null
InterruptedException - если прервано ожидание

remove

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

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

Specified by:
remove в интерфейсе BlockingDeque<E>
Specified by:
remove в интерфейсе Deque<E>
Specified by:
remove в интерфейсе Queue<E>
Overrides:
remove в классе AbstractQueue<E>
Returns:
голова очереди, представленной данным деком
Throws:
NoSuchElementException - если данный дек пуст

poll

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

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

Specified by:
poll в интерфейсе BlockingDeque<E>
Specified by:
poll в интерфейсе Deque<E>
Specified by:
poll в интерфейсе Queue<E>
Returns:
голова данного дека, или null, если этот дек пуст

take

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

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

Specified by:
take в интерфейсе BlockingDeque<E>
Specified by:
take в интерфейсе BlockingQueue<E>
Returns:
голова данного дека
Throws:
InterruptedException - если прервано ожидание

poll

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

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

Specified by:
poll в интерфейсе BlockingDeque<E>
Specified by:
poll в интерфейсе BlockingQueue<E>
Parameters:
timeout - время ожидания, прежде чем отказаться, в единицах unit
unit - TimeUnit определяющий, как интерпретировать параметр timeout
Returns:
голова данного дека, или null, если заданное время ожидания истекло, прежде чем элемент стал доступен
Throws:
InterruptedException - если прервано ожидание

element

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

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

Specified by:
element в интерфейсе BlockingDeque<E>
Specified by:
element в интерфейсе Deque<E>
Specified by:
element в интерфейсе Queue<E>
Overrides:
element в классе AbstractQueue<E>
Returns:
голова очереди, представленной данным деком
Throws:
NoSuchElementException - если этот дек пуст

peek

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

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

Specified by:
peek в интерфейсе BlockingDeque<E>
Specified by:
peek в интерфейсе Deque<E>
Specified by:
peek в интерфейсе Queue<E>
Returns:
голова данного дека, или null, если этот дек пуст

остающаясяЁмкость

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, если эта очередь с двойным концом изменилась в результате вызова

размер

public int size()
Возвращает количество элементов в этой очереди с двойным концом.
Определено в:
size в интерфейсе BlockingDeque<E>
Определено в:
size в интерфейсе Collection<E>
Определено в:
size в интерфейсе Deque<E>
Возвращает:
количество элементов в этой очереди с двойным концом

содержит

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.

Определено в:
toArray в интерфейсе Collection<E>
Переопределяет:
toArray в классе AbstractCollection<E>
Возвращает:
массив, содержащий все элементы этой очереди с двойным концом

toArray

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

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

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

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

 String[] y = x.toArray(new String[0]);
Обратите внимание, что toArray(new Object[0]) идентичен по функции toArray().
Specified by:
toArray в интерфейсе Collection<E>
Overrides:
toArray в классе AbstractCollection<E>
Type Parameters:
T - тип компонента массива, который должен содержать коллекцию
Parameters:
a - массив, в который будут помещены элементы очереди, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа времени выполнения
Returns:
массив, содержащий все элементы в этой очереди
Throws:
ArrayStoreException - если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой очереди
NullPointerException - если указанный массив равен null

clear

public void clear()
Атомарно удаляет все элементы из этой очереди. Очередь будет пустой после возврата этого вызова.
Specified by:
clear в интерфейсе Collection<E>
Overrides:
clear в классе AbstractQueue<E>

iterator

public Iterator<E> iterator()
Возвращает итератор по элементам в этой очереди в правильной последовательности. Элементы будут возвращаться в порядке от первого (голова) до последнего (хвост).

Возвращаемый итератор является слабо согласованным.

Specified by:
iterator в интерфейсе BlockingDeque<E>
Specified by:
iterator в интерфейсе Collection<E>
Specified by:
iterator в интерфейсе Deque<E>
Specified by:
iterator в интерфейсе Iterable<E>
Specified by:
iterator в классе AbstractCollection<E>
Returns:
итератор по элементам в этой очереди в правильной последовательности

descendingIterator

public Iterator<E> descendingIterator()
Возвращает итератор по элементам в этой очереди в обратном порядке. Элементы будут возвращены в порядке от последнего (хвост) к первому (голова).

Возвращаемый итератор является слабо согласованным.

Specified by:
descendingIterator в интерфейсе Deque<E>
Returns:
итератор по элементам в этой очереди в обратном порядке

spliterator

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

Возвращаемый разделитель является слабо согласованным.

Разделитель Spliterator сообщает о Spliterator.CONCURRENT, Spliterator.ORDERED и Spliterator.NONNULL.

Specified by:
spliterator в интерфейсе Collection<E>
Specified by:
spliterator в интерфейсе Iterable<E>
Implementation Note:
Разделитель Spliterator реализует trySplit, чтобы разрешить ограниченное параллельное выполнение.
Returns:
разделитель Spliterator по элементам в этой очереди
Since:
1.8

forEach

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

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

Specified by:
forEach в интерфейсе Iterable<E>
Parameters:
action - действие, которое должно быть выполнено для каждого элемента
Throws:
NullPointerException - если заданное действие равно null

removeIf

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

removeAll

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

retainAll

public boolean retainAll(Collection<?> c)
Описание, скопированное из класса: AbstractCollection
Сохраняет только элементы в этой коллекции, которые содержатся в указанной коллекции (необязательная операция). Другими словами, удаляет из этой коллекции все её элементы, которые не содержатся в указанной коллекции.
Specified by:
retainAll в интерфейсе Collection<E>
Overrides:
retainAll в классе AbstractCollection<E>
Parameters:
c - коллекция, содержащая элементы, которые должны быть сохранены в этой коллекции
Returns:
true, если эта коллекция изменилась в результате вызова
Throws:
NullPointerException - если эта коллекция содержит один или несколько null-элементов, а указанная коллекция не допускает null-элементов (необязательно) или если указанная коллекция равна null
See Also:
  • AbstractCollection.remove(Object)
  • AbstractCollection.contains(Object)

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/LinkedBlockingDeque.html

Spec-Zone.ru

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