Класс 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

Необязательно ограниченный двухсторонний блокирующий дек, основанный на связанных узлах.

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

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

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

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

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

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

Конструктор Описание
LinkedBlockingDeque()

Создает двухсторонний блокирующий дек с емкостью Integer.MAX_VALUE.

LinkedBlockingDeque​(int capacity)

Создает двухсторонний блокирующий дек с заданной емкостью.

LinkedBlockingDeque​(Collection<? extends E> c)

Создает двухсторонний блокирующий дек с емкостью 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 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 removeIf​(Predicate<? super E> filter)

Удаляет все элементы этой коллекции, которые удовлетворяют заданному предикату.

E removeLast()

Извлекает и удаляет последний элемент этого дека.

boolean retainAll​(Collection<?> c)

Оставляет только элементы в этой коллекции, которые содержатся в указанной коллекции (необязательная операция).

int size()

Возвращает количество элементов в этом дека.

Spliterator<E> spliterator()

Возвращает Spliterator по элементам в этом дека.

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.concurrent.BlockingDeque

peek, poll, poll, pollFirst, pollLast, removeFirstOccurrence, removeLastOccurrence, take, takeFirst, takeLast

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

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

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

peekFirst, peekLast, pollFirst, pollLast

Конструкторы

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

Вставляет указанный элемент в начало этого объекта deque, если это возможно сделать немедленно без нарушения ограничений по емкости, выбросив IllegalStateException , если в настоящее время нет места. При использовании deque с ограниченной емкостью, обычно предпочтительнее использовать offerFirst.

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

addLast

public void addLast(E e)

Описание скопировано из интерфейса: BlockingDeque

Вставляет указанный элемент в конец этого объекта deque, если это возможно сделать немедленно без нарушения ограничений по емкости, выбросив IllegalStateException , если в настоящее время нет места. При использовании deque с ограниченной емкостью, обычно предпочтительнее использовать offerLast.

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

offerFirst

public boolean offerFirst(E e)

Описание скопировано из интерфейса: BlockingDeque

Вставляет указанный элемент в начало этого объекта deque, если это возможно сделать немедленно без нарушения ограничений по емкости, возвращая true при успехе и false , если в настоящее время нет места. При использовании deque с ограниченной емкостью, этот метод обычно предпочтительнее метода addFirst, который может не вставить элемент только путем выброса исключения.

Указано в:
offerFirst в интерфейсе BlockingDeque<E>
Указано в:
offerFirst в интерфейсе Deque<E>
Параметры:
e - добавляемый элемент
Возвращает:
true , если элемент был добавлен в этот deque, иначе false
Исключения:
NullPointerException - если указанный элемент равен null

offerLast

public boolean offerLast(E e)

Описание скопировано из интерфейса: BlockingDeque

Вставляет указанный элемент в конец этого объекта deque, если это возможно сделать немедленно без нарушения ограничений по емкости, возвращая true при успехе и false , если в настоящее время нет места. При использовании deque с ограниченной емкостью, этот метод обычно предпочтительнее метода addLast, который может не вставить элемент только путем выброса исключения.

Указано в:
offerLast в интерфейсе BlockingDeque<E>
Указано в:
offerLast в интерфейсе Deque<E>
Параметры:
e - добавляемый элемент
Возвращает:
true , если элемент был добавлен в этот deque, иначе false
Исключения:
NullPointerException - если указанный элемент равен null

putFirst

public void putFirst(E e)
              throws InterruptedException

Описание скопировано из интерфейса: BlockingDeque

Вставляет указанный элемент в начало этого объекта deque, ожидая, если необходимо, пока освободится место.

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

putLast

public void putLast(E e)
             throws InterruptedException

Описание скопировано из интерфейса: BlockingDeque

Вставляет указанный элемент в конец этого объекта deque, ожидая, если необходимо, пока освободится место.

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

offerFirst

public boolean offerFirst(E e,
                          long timeout,
                          TimeUnit unit)
                   throws InterruptedException

Описание скопировано из интерфейса: BlockingDeque

Вставляет указанный элемент в начало этого объекта deque, ожидая до указанного времени ожидания, если необходимо, пока освободится место.

Указано в:
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

Вставляет указанный элемент в конец этого объекта deque, ожидая до указанного времени ожидания, если необходимо, пока освободится место.

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

removeFirst

public E removeFirst()

Описание скопировано из интерфейса: Deque

Извлекает и удаляет первый элемент этого объекта deque. Этот метод отличается от pollFirst только тем, что выбрасывает исключение, если этот deque пустой.

Указано в:
removeFirst в интерфейсе Deque<E>
Возвращает:
голова этого объекта deque
Исключения:
NoSuchElementException - если этот deque пустой

removeLast

public E removeLast()

Описание скопировано из интерфейса: Deque

Извлекает и удаляет последний элемент этого объекта deque. Этот метод отличается от pollLast только тем, что выбрасывает исключение, если этот deque пустой.

Указано в:
removeLast в интерфейсе Deque<E>
Возвращает:
хвост этого объекта deque
Исключения:
NoSuchElementException - если этот deque пустой

getFirst

public E getFirst()

Описание скопировано из интерфейса: Deque

Извлекает, но не удаляет, первый элемент этого объекта deque. Этот метод отличается от peekFirst только тем, что выбрасывает исключение, если этот deque пустой.

Указано в:
getFirst в интерфейсе Deque<E>
Возвращает:
голова этого объекта deque
Исключения:
NoSuchElementException - если этот deque пустой

getLast

public E getLast()

Описание скопировано из интерфейса: Deque

Извлекает, но не удаляет, последний элемент этого объекта deque. Этот метод отличается от peekLast только тем, что выбрасывает исключение, если этот deque пустой.

Указано в:
getLast в интерфейсе Deque<E>
Возвращает:
хвост этого объекта deque
Исключения:
NoSuchElementException - если этот deque пустой

add

public boolean add(E e)

Вставляет указанный элемент в конец этого объекта deque, если это не нарушит ограничения по емкости. При использовании deque с ограниченной емкостью, обычно предпочтительнее использовать метод 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 - если этот deque заполнен
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 - если этот дек пуст

element

public E element()

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

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

Определено в:
element в интерфейсе BlockingDeque<E>
Определено в:
element в интерфейсе Deque<E>
Определено в:
element в интерфейсе Queue<E>
Переопределяет:
element в классе AbstractQueue<E>
Возвращает:
голову очереди, представленной этим деком
Издаёт исключение:
NoSuchElementException - если этот дек пуст

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
См. также:
AbstractCollection.remove(Object), AbstractCollection.contains(Object)

retainAll

public boolean retainAll(Collection<?> c)

Описание скопировано из класса: AbstractCollection

Оставляет только элементы этой коллекции, которые содержатся в указанной коллекции (необязательная операция). Другими словами, удаляет из этой коллекции все ее элементы, которые не содержатся в указанной коллекции.

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

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

Spec-Zone .ru
спецификации, руководства, описания, API