Класс 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
Необязательно ограниченный двухсторонний блокирующий дек, основанный на связанных узлах.
Необязательный аргумент capacity bound конструктора служит способом предотвращения чрезмерного расширения. Емкость, если не указана, равна Integer.MAX_VALUE. Связанные узлы динамически создаются при каждой вставке, если это не приведет к превышению емкости дека.
Большинство операций выполняются за постоянное время (не учитывая время блокировки). Исключение составляют remove, removeFirstOccurrence, removeLastOccurrence, contains, iterator.remove() и операции над наборами, все из которых выполняются за линейное время.
Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator.
Этот класс является членом Framework коллекций Java.
- С момента:
- 1.6
- См. также:
- Сериализованная форма
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinkedBlockingDeque() | Создает двухсторонний блокирующий дек с емкостью |
LinkedBlockingDeque(int capacity) | Создает двухсторонний блокирующий дек с заданной емкостью. |
LinkedBlockingDeque(Collection<? extends E> c) | Создает двухсторонний блокирующий дек с емкостью |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | add(E e) | Вставляет указанный элемент в конец этого дека, если это не нарушит ограничения по емкости. |
boolean | addAll(Collection<? extends E> c) | Добавляет все элементы из указанной коллекции в конец этого дека в порядке, в котором они возвращаются итератором указанной коллекции. |
void | addFirst(E e) | Вставляет указанный элемент в начало этого дека, если это можно сделать немедленно, не нарушая ограничений по емкости, выбрасывая |
void | addLast(E e) | Вставляет указанный элемент в конец этого дека, если это можно сделать немедленно, не нарушая ограничений по емкости, выбрасывая |
void | clear() | Атомарно удаляет все элементы из этого дека. |
boolean | contains(Object o) | Возвращает |
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) | Выполняет заданное действие для каждого элемента |
E | getFirst() | Извлекает, но не удаляет, первый элемент этого дека. |
E | getLast() | Извлекает, но не удаляет, последний элемент этого дека. |
Iterator<E> | iterator() | Возвращает итератор по элементам в этом дека в правильной последовательности. |
boolean | offer(E e) | Вставляет указанный элемент в очередь, представленную этим деком (другими словами, в хвост этого дека), если это можно сделать немедленно, не нарушая ограничений по емкости, возвращая |
boolean | offer(E e,
long timeout,
TimeUnit unit) | Вставляет указанный элемент в очередь, представленную этим деком (другими словами, в хвост этого дека), ожидая в течение заданного времени, если необходимо, пока место не станет доступным. |
boolean | offerFirst(E e) | Вставляет указанный элемент в начало этого дека, если это можно сделать немедленно, не нарушая ограничений по емкости, возвращая |
boolean | offerFirst(E e,
long timeout,
TimeUnit unit) | Вставляет указанный элемент в начало этого дека, ожидая в течение заданного времени, если необходимо, пока место не станет доступным. |
boolean | offerLast(E e) | Вставляет указанный элемент в конец этого дека, если это можно сделать немедленно, не нарушая ограничений по емкости, возвращая |
boolean | offerLast(E e,
long timeout,
TimeUnit unit) | Вставляет указанный элемент в конец этого дека, ожидая в течение заданного времени, если необходимо, пока место не станет доступным. |
E | pop() | Извлекает элемент из стека, представленного этим деком. |
void | push(E e) | Помещает элемент в стек, представленный этим деком (другими словами, в начало этого дека), если это можно сделать немедленно, не нарушая ограничений по емкости, выбрасывая |
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() | Возвращает |
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