Класс LinkedBlockingDeque<E>
- Параметры типа:
E- тип элементов, хранящихся в этой двусторонней очереди
- Все реализуемые интерфейсы:
Serializable, Iterable<E>, Collection<E>, BlockingDeque<E>, BlockingQueue<E>, Deque<E>, Queue<E>, SequencedCollection<E>
public class LinkedBlockingDeque<E> extends AbstractQueue<E> implements BlockingDeque<E>, Serializable
Аргумент конструктора, задающий необязательное ограничение ёмкости, позволяет предотвратить чрезмерное увеличение размера. Если ёмкость не указана, она равна Integer.MAX_VALUE. Связанные узлы создаются динамически при каждой вставке, если это не приведёт к превышению ёмкости двусторонней очереди.
Большинство операций выполняется за константное время (не учитывая время блокировки). Исключения составляют remove, removeFirstOccurrence, removeLastOccurrence, contains и массовые операции, каждая из которых выполняется за линейное время.
Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator.
Этот класс входит в состав Java Collections Framework.
- С момента выпуска:
- 1.6
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinkedBlockingDeque() |
Создаёт LinkedBlockingDeque с ёмкостью Integer.MAX_VALUE. |
LinkedBlockingDeque |
Создаёт LinkedBlockingDeque с указанной (фиксированной) ёмкостью. |
LinkedBlockingDeque |
Создаёт LinkedBlockingDeque с ёмкостью Integer.MAX_VALUE, изначально содержащую элементы указанной коллекции, добавленные в порядке обхода итератора этой коллекции. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
add |
Вставляет указанный элемент в конец этой двусторонней очереди, если это не нарушает ограничения ёмкости. |
boolean |
addAll |
Добавляет все элементы указанной коллекции в конец этой двусторонней очереди в порядке, в котором их возвращает итератор указанной коллекции. |
void |
addFirst |
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничения ёмкости; если свободного места нет, выбрасывает IllegalStateException. |
void |
addLast |
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничения ёмкости; если свободного места нет, выбрасывает IllegalStateException. |
void |
clear() |
Атомарно удаляет все элементы из этой двусторонней очереди. |
boolean |
contains |
Возвращает true, если эта двусторонняя очередь содержит указанный элемент. |
Iterator |
descendingIterator() |
Возвращает итератор по элементам этой двусторонней очереди в обратном порядке. |
int |
drainTo |
Удаляет все доступные элементы из этой очереди и добавляет их в указанную коллекцию. |
int |
drainTo |
Удаляет из этой очереди не более указанного количества доступных элементов и добавляет их в указанную коллекцию. |
E |
element() |
Получает, но не удаляет голову очереди, представленной этой двусторонней очередью. |
void |
forEach |
Выполняет указанное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не выбросит исключение. |
E |
getFirst() |
Получает, но не удаляет первый элемент этой двусторонней очереди. |
E |
getLast() |
Получает, но не удаляет последний элемент этой двусторонней очереди. |
Iterator |
iterator() |
Возвращает итератор по элементам этой двусторонней очереди в надлежащем порядке. |
boolean |
offer |
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в её конец), если это можно сделать немедленно, не нарушая ограничения ёмкости; в случае успеха возвращает true, а если свободного места нет — false. |
boolean |
offer |
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в её конец), при необходимости ожидая освобождения места в течение указанного времени ожидания. |
boolean |
offerFirst |
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничения ёмкости; в случае успеха возвращает true, а если свободного места нет — false. |
boolean |
offerFirst |
Вставляет указанный элемент в начало этой двусторонней очереди, при необходимости ожидая освобождения места в течение указанного времени ожидания. |
boolean |
offerLast |
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничения ёмкости; в случае успеха возвращает true, а если свободного места нет — false. |
boolean |
offerLast |
Вставляет указанный элемент в конец этой двусторонней очереди, при необходимости ожидая освобождения места в течение указанного времени ожидания. |
E |
peek() |
Получает, но не удаляет голову очереди, представленной этой двусторонней очередью (то есть её первый элемент), или возвращает null, если эта двусторонняя очередь пуста. |
E |
peekFirst() |
Получает, но не удаляет первый элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста. |
E |
peekLast() |
Получает, но не удаляет последний элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста. |
E |
poll() |
Получает и удаляет голову очереди, представленной этой двусторонней очередью (то есть её первый элемент), или возвращает null, если эта двусторонняя очередь пуста. |
E |
poll |
Получает и удаляет голову очереди, представленной этой двусторонней очередью (то есть её первый элемент), при необходимости ожидая появления элемента в течение указанного времени ожидания. |
E |
pollFirst() |
Получает и удаляет первый элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста. |
E |
pollFirst |
Получает и удаляет первый элемент этой двусторонней очереди, при необходимости ожидая появления элемента в течение указанного времени ожидания. |
E |
pollLast() |
Получает и удаляет последний элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста. |
E |
pollLast |
Получает и удаляет последний элемент этой двусторонней очереди, при необходимости ожидая появления элемента в течение указанного времени ожидания. |
E |
pop() |
Извлекает элемент из стека, представленного этой двусторонней очередью. |
void |
push |
Помещает элемент в стек, представленный этой двусторонней очередью (то есть в её начало), если это можно сделать немедленно, не нарушая ограничения ёмкости; если свободного места нет, выбрасывает IllegalStateException. |
void |
put |
Вставляет указанный элемент в очередь, представленную этой двусторонней очередью (то есть в её конец), при необходимости ожидая освобождения места. |
void |
putFirst |
Вставляет указанный элемент в начало этой двусторонней очереди, при необходимости ожидая освобождения места. |
void |
putLast |
Вставляет указанный элемент в конец этой двусторонней очереди, при необходимости ожидая освобождения места. |
int |
remainingCapacity() |
Возвращает количество дополнительных элементов, которые эта двусторонняя очередь в идеальных условиях (при отсутствии ограничений по памяти или ресурсам) может принять без блокировки. |
E |
remove() |
Получает и удаляет голову очереди, представленной этой двусторонней очередью. |
boolean |
remove |
Удаляет первое вхождение указанного элемента из этой двусторонней очереди. |
boolean |
removeAll |
Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательная операция). |
E |
removeFirst() |
Получает и удаляет первый элемент этой двусторонней очереди. |
boolean |
removeFirstOccurrence |
Удаляет первое вхождение указанного элемента из этой двусторонней очереди. |
boolean |
removeIf |
Удаляет все элементы этой коллекции, удовлетворяющие указанному предикату (необязательная операция). |
E |
removeLast() |
Получает и удаляет последний элемент этой двусторонней очереди. |
boolean |
removeLastOccurrence |
Удаляет последнее вхождение указанного элемента из этой двусторонней очереди. |
boolean |
retainAll |
Оставляет в этой коллекции только элементы, содержащиеся в указанной коллекции (необязательная операция). |
int |
size() |
Возвращает количество элементов в этой двусторонней очереди. |
Spliterator |
spliterator() |
Возвращает Spliterator для элементов этой двусторонней очереди. |
E |
take() |
Получает и удаляет голову очереди, представленной этой двусторонней очередью (то есть её первый элемент), при необходимости ожидая появления элемента. |
E |
takeFirst() |
Получает и удаляет первый элемент этой двусторонней очереди, при необходимости ожидая появления элемента. |
E |
takeLast() |
Получает и удаляет последний элемент этой двусторонней очереди, при необходимости ожидая появления элемента. |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этой двусторонней очереди в надлежащем порядке (от первого элемента к последнему). |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой двусторонней очереди в надлежащем порядке; тип возвращаемого массива во время выполнения совпадает с типом указанного массива. |
Методы, объявленные в классе AbstractCollection
containsAll, isEmpty, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
containsAll |
Возвращает true, если эта коллекция содержит все элементы указанной коллекции. |
boolean |
isEmpty() |
Возвращает true, если эта коллекция не содержит элементов. |
String |
toString() |
Возвращает строковое представление этой коллекции. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удалён в одной из будущих версий. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс этого Object во время выполнения. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Collection
equals, hashCode, parallelStream, stream, toArray | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный объект с этой коллекцией на равенство. |
int |
hashCode() |
Возвращает значение хеш-кода этой коллекции. |
default Stream |
parallelStream() |
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция. |
default Stream |
stream() |
Возвращает последовательный Stream, источником которого является эта коллекция. |
default <T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator. |
Подробное описание конструкторов
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)
BlockingDequeIllegalStateException. При использовании двусторонней очереди с ограниченной емкостью обычно предпочтительнее использовать offerFirst.- Определено в:
-
addFirstв интерфейсеBlockingDeque<E> - Определено в:
-
addFirstв интерфейсеDeque<E> - Определено в:
-
addFirstв интерфейсеSequencedCollection<E> - Параметры:
-
e— добавляемый элемент - Исключения:
-
IllegalStateException— если эта двусторонняя очередь заполнена -
NullPointerException— если указанный элемент равен null
addLast
public void addLast(E e)
BlockingDequeIllegalStateException. При использовании двусторонней очереди с ограниченной емкостью обычно предпочтительнее использовать offerLast.- Определено в:
-
addLastв интерфейсеBlockingDeque<E> - Определено в:
-
addLastв интерфейсеDeque<E> - Определено в:
-
addLastв интерфейсеSequencedCollection<E> - Параметры:
-
e— добавляемый элемент - Исключения:
-
IllegalStateException— если эта двусторонняя очередь заполнена -
NullPointerException— если указанный элемент равен null
offerFirst
public boolean offerFirst(E e)
BlockingDequetrue, а если свободного места нет — false. При использовании двусторонней очереди с ограниченной емкостью этот метод обычно предпочтительнее метода addFirst, который может не вставить элемент только в случае выбрасывания исключения.- Определено в:
-
offerFirstв интерфейсеBlockingDeque<E> - Определено в:
-
offerFirstв интерфейсеDeque<E> - Параметры:
-
e— добавляемый элемент - Возвращает:
-
true, если элемент был добавлен в эту двустороннюю очередь, иначеfalse - Исключения:
-
NullPointerException— если указанный элемент равен null
offerLast
public boolean offerLast(E e)
BlockingDequetrue, а если свободного места нет — 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()
DequepollFirst только тем, что выбрасывает исключение, если двусторонняя очередь пуста.- Определено в:
-
removeFirstв интерфейсеDeque<E> - Определено в:
-
removeFirstв интерфейсеSequencedCollection<E> - Возвращает:
- голову этой двусторонней очереди
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
removeLast
public E removeLast()
DequepollLast только тем, что выбрасывает исключение, если двусторонняя очередь пуста.- Определено в:
-
removeLastв интерфейсеDeque<E> - Определено в:
-
removeLastв интерфейсеSequencedCollection<E> - Возвращает:
- хвост этой двусторонней очереди
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
pollFirst
public E pollFirst()
Dequenull, если двусторонняя очередь пуста.pollLast
public E pollLast()
Dequenull, если двусторонняя очередь пуста.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()
DequepeekFirst только тем, что выбрасывает исключение, если двусторонняя очередь пуста.- Определено в:
-
getFirstв интерфейсеDeque<E> - Определено в:
-
getFirstв интерфейсеSequencedCollection<E> - Возвращает:
- голову этой двусторонней очереди
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
getLast
public E getLast()
DequepeekLast только тем, что выбрасывает исключение, если двусторонняя очередь пуста.- Определено в:
-
getLastв интерфейсеDeque<E> - Определено в:
-
getLastв интерфейсеSequencedCollection<E> - Возвращает:
- хвост этой двусторонней очереди
- Исключения:
-
NoSuchElementException— если эта двусторонняя очередь пуста
peekFirst
public E peekFirst()
Dequenull, если двусторонняя очередь пуста.peekLast
public E peekLast()
Dequenull, если двусторонняя очередь пуста.removeFirstOccurrence
public boolean removeFirstOccurrence(Object o)
BlockingDequee, для которого выполняется условие o.equals(e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что эквивалентно, если в результате вызова очередь изменилась).- Определено в:
-
removeFirstOccurrenceв интерфейсеBlockingDeque<E> - Определено в:
-
removeFirstOccurrenceв интерфейсеDeque<E> - Параметры:
-
o— элемент, который нужно удалить из этой двусторонней очереди, если он присутствует - Возвращает:
-
true, если в результате этого вызова был удален элемент
removeLastOccurrence
public boolean removeLastOccurrence(Object o)
BlockingDequee, для которого выполняется условие 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)
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()
null, если двусторонняя очередь пуста. Этот метод эквивалентен Deque.pollFirst().
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()
null, если эта двусторонняя очередь пуста. Этот метод эквивалентен peekFirst.
remainingCapacity
public int remainingCapacity()
size этой двусторонней очереди. Обратите внимание, что по значению remainingCapacity не всегда можно определить, завершится ли попытка вставить элемент успешно, поскольку другой поток может уже собираться вставить или удалить элемент.
- Определено в:
-
remainingCapacityв интерфейсеBlockingQueue<E> - Возвращает:
- оставшуюся емкость
drainTo
public int drainTo(Collection<? super E> c)
BlockingQueuec может привести к тому, что после выбрасывания соответствующего исключения элементы окажутся ни в одной из коллекций, в одной из них или в обеих. Попытка перенести элементы очереди в нее же приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время ее выполнения.- Определено в:
-
drainToв интерфейсеBlockingQueue<E> - Параметры:
-
c- коллекция, в которую нужно перенести элементы - Возвращает:
- количество перенесенных элементов
- Выбрасывает:
-
UnsupportedOperationException- если указанная коллекция не поддерживает добавление элементов -
ClassCastException- если класс элемента этой очереди не позволяет добавить его в указанную коллекцию -
NullPointerException- если указанная коллекция равна null -
IllegalArgumentException- если указанная коллекция является этой очередью или если какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию
drainTo
public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueuec может привести к тому, что после выбрасывания соответствующего исключения элементы окажутся ни в одной из коллекций, в одной из них или в обеих. Попытка перенести элементы очереди в нее же приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время ее выполнения.- Определено в:
-
drainToв интерфейсеBlockingQueue<E> - Параметры:
-
c- коллекция, в которую нужно перенести элементы -
maxElements- максимальное количество элементов для переноса - Возвращает:
- количество перенесенных элементов
- Выбрасывает:
-
UnsupportedOperationException- если указанная коллекция не поддерживает добавление элементов -
ClassCastException- если класс элемента этой очереди не позволяет добавить его в указанную коллекцию -
NullPointerException- если указанная коллекция равна null -
IllegalArgumentException- если указанная коллекция является этой очередью или если какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию
push
public void push(E e)
BlockingDequeIllegalStateException. Этот метод эквивалентен 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- если эта двусторонняя очередь заполнена - См. также:
toArray
public Object[] toArray()
Возвращаемый массив будет «безопасным»: эта двусторонняя очередь не сохраняет на него ссылок (иначе говоря, этот метод должен выделить новый массив). Поэтому вызывающий код может свободно изменять возвращенный массив.
Этот метод служит связующим звеном между API на основе массивов и API на основе коллекций.
- Определено в:
-
toArrayв интерфейсеCollection<E> - Переопределяет:
-
toArrayв классеAbstractCollection<E> - Возвращает:
- массив, содержащий все элементы этой двусторонней очереди
toArray
public <T> T[] toArray(T[] a)
Если эта двусторонняя очередь помещается в указанный массив с запасом (то есть в массиве больше элементов, чем в этой двусторонней очереди), элемент массива, расположенный сразу после конца двусторонней очереди, устанавливается в null.
Как и метод toArray(), этот метод служит связующим звеном между API на основе массивов и 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)
IterableIterable, пока не будут обработаны все элементы или пока действие не выбросит исключение. Если порядок итерации определен, действия выполняются в этом порядке. Исключения, выброшенные действием, передаются вызывающему коду. Поведение этого метода не определено, если действие выполняет побочные эффекты, изменяющие исходную коллекцию элементов, за исключением случаев, когда переопределяющий класс определяет политику конкурентного изменения.
- Определено в:
-
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 - См. также:
retainAll
public boolean retainAll(Collection<?> c)
AbstractCollection- Определено в:
-
retainAllв интерфейсеCollection<E> - Переопределяет:
-
retainAllв классеAbstractCollection<E> - Параметры:
-
c- коллекция, содержащая элементы, которые нужно оставить в этой коллекции - Возвращает:
-
true, если эта коллекция изменилась в результате вызова - Выбрасывает:
-
NullPointerException- если эта коллекция содержит один или несколько элементов null, а указанная коллекция не допускает элементы null (необязательно), либо если указанная коллекция равна null - См. также:
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.