Spec-Zone.ru › OpenJDK 17

Класс 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>
public class LinkedBlockingDeque<E> extends AbstractQueue<E> implements BlockingDeque<E>, Serializable
Необязательно ограниченный блокирующий дек на основе связанных узлов.

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

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

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

Этот класс является членом Java Collections Framework.

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

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

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

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

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>
Параметры:
e - добавляемый элемент
Исключения:
IllegalStateException - если эта очередь заполнена
NullPointerException - если указанный элемент равен null

addLast

public void addLast(E e)
Описание, скопированное из интерфейса: BlockingDeque
Вставляет указанный элемент в конец этой очереди, если это возможно сделать немедленно без нарушения ограничений по ёмкости, выбрасывая исключение IllegalStateException, если свободной памяти нет. При использовании очереди с ограниченной ёмкостью, рекомендуется использовать offerLast.
Определено в:
addLast в интерфейсе BlockingDeque<E>
Определено в:
addLast в интерфейсе Deque<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>
Возвращает:
голова этой очереди
Исключения:
NoSuchElementException - если эта очередь пуста

removeLast

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

getLast

public E getLast()
Описание скопировано из интерфейса: Deque
Возвращает, но не удаляет, последний элемент этого дека. Этот метод отличается от peekLast только тем, что он выбрасывает исключение, если этот дек пуст.
Определено в:
getLast в интерфейсе Deque<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)
Описание скопировано из интерфейса: BlockingDeque
Вставляет указанный элемент в очередь, представленную этим массивом (другими словами, в конец этого массива), если это возможно сделать немедленно без нарушения ограничений по емкости, возвращая 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()
Описание скопировано из интерфейса: BlockingDeque
Извлекает и удаляет голову очереди, представленной этим массивом (другими словами, первый элемент этого массива), или возвращает 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()
Описание скопировано из интерфейса: BlockingDeque
Извлекает, но не удаляет, голову очереди, представленной этим массивом (другими словами, первый элемент этого массива), или возвращает 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.

Определено в:
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().
Указано в:
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)

© 1993, 2021, 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/17/docs/api/java.base/java/util/concurrent/LinkedBlockingDeque.html

Spec-Zone.ru

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