Класс LinkedBlockingDeque<E>
- Type Parameters:
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
Необязательный аргумент capacity bound служит способом предотвращения чрезмерного расширения. Емкость, если не указана, равна Integer.MAX_VALUE. Связанные узлы динамически создаются при каждой вставке, если это не приведет к превышению емкости.
Большинство операций выполняются за константное время (исключая время блокировки). К исключениям относятся remove, removeFirstOccurrence, removeLastOccurrence, contains, iterator.remove() и операции по обработке множества элементов, которые выполняются за линейное время.
Этот класс и его итератор реализуют все *необязательные* методы интерфейсов Collection и Iterator.
Этот класс является частью Фреймворка Java Collections.
- Since:
- 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() |
Извлекает и удаляет голову очереди, представленной этим deque (то есть первый элемент этого deque), ожидая, если необходимо, пока элемент не станет доступным. |
E |
takeFirst() |
Извлекает и удаляет первый элемент этого deque, ожидая, если необходимо, пока элемент не станет доступным. |
E |
takeLast() |
Извлекает и удаляет последний элемент этого deque, ожидая, если необходимо, пока элемент не станет доступным. |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этого deque в правильной последовательности (от первого к последнему элементу). |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этого deque в правильной последовательности; тип времени выполнения возвращаемого массива — это тип указанного массива. |
Методы, объявленные в классе java.util.AbstractCollection
containsAll, isEmpty, toString
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.util.Collection
containsAll, equals, hashCode, isEmpty, parallelStream, stream, toArray
Краткое описание конструкторов
LinkedBlockingDeque
public LinkedBlockingDeque()
LinkedBlockingDeque с ёмкостью Integer.MAX_VALUE.LinkedBlockingDeque
public LinkedBlockingDeque(int capacity)
LinkedBlockingDeque с заданной (фиксированной) ёмкостью.- Параметры:
-
capacity- ёмкость этой деки - Исключения:
-
IllegalArgumentException- еслиcapacityменьше 1
LinkedBlockingDeque
public LinkedBlockingDeque(Collection<? extends E> c)
LinkedBlockingDeque с ёмкостью Integer.MAX_VALUE, изначально содержащий элементы заданной коллекции, добавленные в порядке обхода итератора коллекции.- Параметры:
-
c- коллекция элементов для первоначального заполнения - Исключения:
-
NullPointerException- если указанная коллекция или любой из её элементов являются null
Краткое описание методов
addFirst
public void addFirst(E e)
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
pollLast
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
peekLast
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).
- Specified by:
-
addв интерфейсеBlockingDeque<E> - Specified by:
-
addв интерфейсеBlockingQueue<E> - Specified by:
-
addв интерфейсеCollection<E> - Specified by:
-
addв интерфейсеDeque<E> - Specified by:
-
addв интерфейсеQueue<E> - Overrides:
-
addв классеAbstractQueue<E> - Parameters:
-
e- добавляемый элемент - Returns:
-
true(как указано вCollection.add(E)) - Throws:
-
IllegalStateException- если данная очередь-дек заполнена -
NullPointerException- если указанный элемент имеет значение null
offer
public boolean offer(E e)
true при успехе и false, если места нет. При использовании очереди-дек с ограниченной вместимостью, этот метод, как правило, предпочтительнее метода BlockingDeque.add(E), который может не вставить элемент, только бросив исключение. Этот метод эквивалентен методу offerLast.
- Specified by:
-
offerв интерфейсеBlockingDeque<E> - Specified by:
-
offerв интерфейсеBlockingQueue<E> - Specified by:
-
offerв интерфейсеDeque<E> - Specified by:
-
offerв интерфейсеQueue<E> - Parameters:
-
e- добавляемый элемент - Returns:
-
true, если элемент был добавлен в очередь, иначеfalse - Throws:
-
NullPointerException- если указанный элемент имеет значение null
put
public void put(E e) throws InterruptedException
BlockingDequeЭтот метод эквивалентен методу putLast.
- Specified by:
-
putв интерфейсеBlockingDeque<E> - Specified by:
-
putв интерфейсеBlockingQueue<E> - Parameters:
-
e- добавляемый элемент - Throws:
-
NullPointerException- если указанный элемент имеет значение null -
InterruptedException- если прервано ожидание
offer
public boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
BlockingDequeЭтот метод эквивалентен методу offerLast.
- Specified by:
-
offerв интерфейсеBlockingDeque<E> - Specified by:
-
offerв интерфейсеBlockingQueue<E> - Parameters:
-
e- добавляемый элемент -
timeout- время ожидания, прежде чем отказаться, в единицахunit -
unit-TimeUnitопределяющий, как интерпретировать параметрtimeout - Returns:
-
true, если элемент был добавлен в этот дек, иначеfalse - Throws:
-
NullPointerException- если указанный элемент имеет значение null -
InterruptedException- если прервано ожидание
remove
public E remove()
poll() только тем, что выбрасывает исключение, если этот дек пуст. Этот метод эквивалентен методу removeFirst.
- Specified by:
-
removeв интерфейсеBlockingDeque<E> - Specified by:
-
removeв интерфейсеDeque<E> - Specified by:
-
removeв интерфейсеQueue<E> - Overrides:
-
removeв классеAbstractQueue<E> - Returns:
- голова очереди, представленной данным деком
- Throws:
-
NoSuchElementException- если данный дек пуст
poll
public E poll()
null, если этот дек пуст. Этот метод эквивалентен методу Deque.pollFirst().
take
public E take() throws InterruptedException
BlockingDequeЭтот метод эквивалентен методу takeFirst.
- Specified by:
-
takeв интерфейсеBlockingDeque<E> - Specified by:
-
takeв интерфейсеBlockingQueue<E> - Returns:
- голова данного дека
- Throws:
-
InterruptedException- если прервано ожидание
poll
public E poll(long timeout, TimeUnit unit) throws InterruptedException
BlockingDequeЭтот метод эквивалентен методу pollFirst.
- Specified by:
-
pollв интерфейсеBlockingDeque<E> - Specified by:
-
pollв интерфейсеBlockingQueue<E> - Parameters:
-
timeout- время ожидания, прежде чем отказаться, в единицахunit -
unit-TimeUnitопределяющий, как интерпретировать параметрtimeout - Returns:
- голова данного дека, или
null, если заданное время ожидания истекло, прежде чем элемент стал доступен - Throws:
-
InterruptedException- если прервано ожидание
element
public E element()
peek() только тем, что выбрасывает исключение, если этот дек пуст. Этот метод эквивалентен методу getFirst.
- Specified by:
-
elementв интерфейсеBlockingDeque<E> - Specified by:
-
elementв интерфейсеDeque<E> - Specified by:
-
elementв интерфейсеQueue<E> - Overrides:
-
elementв классеAbstractQueue<E> - Returns:
- голова очереди, представленной данным деком
- Throws:
-
NoSuchElementException- если этот дек пуст
peek
public E peek()
null, если этот дек пуст. Этот метод эквивалентен методу peekFirst.
остающаясяЁмкость
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, если эта очередь с двойным концом изменилась в результате вызова
размер
public int size()
- Определено в:
-
sizeв интерфейсеBlockingDeque<E> - Определено в:
-
sizeв интерфейсеCollection<E> - Определено в:
-
sizeв интерфейсеDeque<E> - Возвращает:
- количество элементов в этой очереди с двойным концом
содержит
public boolean contains(Object o)
true, если эта очередь с двойным концом содержит указанный элемент. Более формально, возвращает true тогда и только тогда, когда эта очередь с двойным концом содержит по крайней мере один элемент e такой, что o.equals(e).- Определено в:
-
containsв интерфейсеBlockingDeque<E> - Определено в:
-
containsв интерфейсеBlockingQueue<E> - Определено в:
-
containsв интерфейсеCollection<E> - Определено в:
-
containsв интерфейсеDeque<E> - Переопределяет:
-
containsв классеAbstractCollection<E> - Параметры:
-
o- объект, который нужно проверить на наличие в этой очереди с двойным концом - Возвращает:
-
true, если эта очередь с двойным концом содержит указанный элемент
addAll
public boolean addAll(Collection<? extends E> c)
addAll очереди с двойным концом в себя приводят к IllegalArgumentException.- Определено в:
-
addAllв интерфейсеCollection<E> - Определено в:
-
addAllв интерфейсеDeque<E> - Переопределяет:
-
addAllв классеAbstractQueue<E> - Параметры:
-
c- элементы, которые нужно вставить в эту очередь с двойным концом - Возвращает:
-
true, если эта очередь с двойным концом изменилась в результате вызова - Исключения:
-
NullPointerException- если заданная коллекция или любой из ее элементов имеют значение null -
IllegalArgumentException- если коллекция — это эта очередь с двойным концом -
IllegalStateException- если эта очередь с двойным концом заполнена - См. также:
toArray
public Object[] toArray()
Возвращаемый массив будет «безопасным» в том смысле, что к нему не сохраняются ссылки этой очередью с двойным концом. (Другими словами, этот метод должен выделить новый массив). Таким образом, вызывающий метод свободен изменять возвращаемый массив.
Этот метод действует как мост между массивоориентированными и коллекционноориентированными API.
- Определено в:
-
toArrayв интерфейсеCollection<E> - Переопределяет:
-
toArrayв классеAbstractCollection<E> - Возвращает:
- массив, содержащий все элементы этой очереди с двойным концом
toArray
public <T> T[] toArray(T[] a)
Если эта очередь помещается в указанный массив с избытком места (т. е. массив имеет больше элементов, чем эта очередь), элемент в массиве непосредственно после окончания очереди устанавливается в значение null.
Как и метод toArray(), этот метод действует как мост между массивоориентированными и коллекционно-ориентированными API. Кроме того, этот метод позволяет точно управлять типом времени выполнения выходного массива и в определенных обстоятельствах может использоваться для экономии расходов на выделение памяти.
Предположим, что x — это очередь с очередью, которая, как известно, содержит только строки. Следующий код может быть использован для выгрузки очереди в новый выделенный массив типа String:
String[] y = x.toArray(new String[0]); Обратите внимание, что toArray(new Object[0]) идентичен по функции toArray().- Specified by:
-
toArrayв интерфейсеCollection<E> - Overrides:
-
toArrayв классеAbstractCollection<E> - Type Parameters:
T- тип компонента массива, который должен содержать коллекцию- Parameters:
-
a- массив, в который будут помещены элементы очереди, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа времени выполнения - Returns:
- массив, содержащий все элементы в этой очереди
- Throws:
-
ArrayStoreException- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой очереди -
NullPointerException- если указанный массив равен null
clear
public void clear()
- Specified by:
-
clearв интерфейсеCollection<E> - Overrides:
-
clearв классеAbstractQueue<E>
iterator
public Iterator<E> iterator()
Возвращаемый итератор является слабо согласованным.
- Specified by:
-
iteratorв интерфейсеBlockingDeque<E> - Specified by:
-
iteratorв интерфейсеCollection<E> - Specified by:
-
iteratorв интерфейсеDeque<E> - Specified by:
-
iteratorв интерфейсеIterable<E> - Specified by:
-
iteratorв классеAbstractCollection<E> - Returns:
- итератор по элементам в этой очереди в правильной последовательности
descendingIterator
public Iterator<E> descendingIterator()
Возвращаемый итератор является слабо согласованным.
- Specified by:
-
descendingIteratorв интерфейсеDeque<E> - Returns:
- итератор по элементам в этой очереди в обратном порядке
spliterator
public Spliterator<E> spliterator()
Spliterator по элементам в этой очереди. Возвращаемый разделитель является слабо согласованным.
Разделитель Spliterator сообщает о Spliterator.CONCURRENT, Spliterator.ORDERED и Spliterator.NONNULL.
- Specified by:
-
spliteratorв интерфейсеCollection<E> - Specified by:
-
spliteratorв интерфейсеIterable<E> - Implementation Note:
- Разделитель
SpliteratorреализуетtrySplit, чтобы разрешить ограниченное параллельное выполнение. - Returns:
- разделитель
Spliteratorпо элементам в этой очереди - Since:
- 1.8
forEach
public void forEach(Consumer<? super E> action)
IterableIterable до тех пор, пока все элементы не будут обработаны или действие не выбросит исключение. Действия выполняются в порядке итерации, если этот порядок задан. Исключения, выброшенные действием, передаются вызывающей стороне. Поведение этого метода не определено, если действие выполняет побочные эффекты, которые изменяют исходный источник элементов, за исключением случаев, когда переопределяемый класс указал политику одновременного изменения.
- Specified by:
-
forEachв интерфейсеIterable<E> - Parameters:
-
action- действие, которое должно быть выполнено для каждого элемента - Throws:
-
NullPointerException- если заданное действие равно null
removeIf
public boolean removeIf(Predicate<? super E> filter)
Collection- Specified by:
-
removeIfв интерфейсеCollection<E> - Parameters:
-
filter- предикат, который возвращает значениеtrueдля удаляемых элементов - Returns:
-
true, если были удалены какие-либо элементы - Throws:
-
NullPointerException- если указанный фильтр равен null
removeAll
public boolean removeAll(Collection<?> c)
AbstractCollection- Specified by:
-
removeAllв интерфейсеCollection<E> - Overrides:
-
removeAllв классеAbstractCollection<E> - Parameters:
-
c- коллекция, содержащая элементы, которые должны быть удалены из этой коллекции - Returns:
-
true, если эта коллекция изменилась в результате вызова - Throws:
-
NullPointerException- если эта коллекция содержит один или несколько null-элементов, а указанная коллекция не поддерживает null-элементы (необязательно) или если указанная коллекция равна null - See Also:
retainAll
public boolean retainAll(Collection<?> c)
AbstractCollection- Specified by:
-
retainAllв интерфейсеCollection<E> - Overrides:
-
retainAllв классеAbstractCollection<E> - Parameters:
-
c- коллекция, содержащая элементы, которые должны быть сохранены в этой коллекции - Returns:
-
true, если эта коллекция изменилась в результате вызова - Throws:
-
NullPointerException- если эта коллекция содержит один или несколько null-элементов, а указанная коллекция не допускает null-элементов (необязательно) или если указанная коллекция равна null - See Also:
© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/LinkedBlockingDeque.html