Spec-Zone.ru › OpenJDK 21

Класс LinkedBlockingDeque<E>

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

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

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

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

Этот класс является частью Java Collections Framework.

Since:
1.6
See Also:
  • Serialized Form

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

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

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

Modifier and Type Method Description
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)
Возвращает массив, содержащий все элементы в этом очереди в правильном порядке; тип возвращаемого массива соответствует указанному массиву.

Методы, объявленные в классе 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)
Описание, скопированное из интерфейса: BlockingDeque
Вставляет указанный элемент в очередь, представленную этим деком (другими словами, в хвост этого дека), если это возможно сделать немедленно без нарушения ограничений по емкости, возвращая 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()
Описание, скопированное из интерфейса: BlockingDeque
Возвращает и удаляет голову очереди, представленной этим деком (другими словами, первый элемент этого дека), или возвращает 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()
Описание, скопированное из интерфейса: BlockingDeque
Возвращает, но не удаляет, голову очереди, представленной этим деком (другими словами, первый элемент этого дека), или возвращает 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 в интерфейсе 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, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/LinkedBlockingDeque.html

Spec-Zone.ru

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