Класс LinkedBlockingDeque<E>
- Type Parameters:
-
E- тип элементов, хранимых в этом деке
- Все реализованные интерфейсы:
-
Serializable,Iterable<E>,Collection<E>,BlockingDeque<E>,BlockingQueue<E>,Deque<E>,Queue<E>
public class LinkedBlockingDeque<E> extends AbstractQueue<E> implements BlockingDeque<E>, Serializable
Необязательный аргумент конструктора с границей по емкости служит для предотвращения чрезмерного расширения. Емкость, если не указана, равна Integer.MAX_VALUE. Связанные узлы динамически создаются при каждой вставке, если это не приведет к превышению емкости дека.
Большинство операций выполняются за постоянное время (не учитывая время ожидания блокировки). К исключениям относятся remove, removeFirstOccurrence, removeLastOccurrence, contains, iterator.remove() и операции с набором элементов, все из которых выполняются за линейное время.
Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator.
Этот класс является членом Java Collections Framework.
- Since:
- 1.6
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinkedBlockingDeque() |
Создает дек с емкостью Integer.MAX_VALUE. |
LinkedBlockingDeque |
Создает дек с заданной (фиксированной) емкостью. |
LinkedBlockingDeque |
Создает дек с емкостью Integer.MAX_VALUE, изначально содержащий элементы заданной коллекции, добавленные в порядке обхода итератора коллекции. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
add |
Вставляет указанный элемент в конец данного дека, если это не нарушит ограничения по емкости. |
boolean |
addAll |
Добавляет все элементы из указанной коллекции в конец данного дека в порядке, в котором они возвращаются итератором указанной коллекции. |
void |
addFirst |
Вставляет указанный элемент в начало данного дека, если это возможно сделать немедленно без нарушения ограничений по емкости, выбрасывая IllegalStateException, если места нет. |
void |
addLast |
Вставляет указанный элемент в конец данного дека, если это возможно сделать немедленно без нарушения ограничений по емкости, выбрасывая IllegalStateException, если места нет. |
void |
clear() |
Атомарно удаляет все элементы из данного дека. |
boolean |
contains |
Возвращает true, если этот дек содержит указанный элемент. |
Iterator<E> |
descendingIterator() |
Возвращает итератор по элементам в этом дека в обратном порядке. |
int |
drainTo |
Удаляет все доступные элементы из этой очереди и добавляет их в заданную коллекцию. |
int |
drainTo |
Удаляет не более заданного количества доступных элементов из этой очереди и добавляет их в заданную коллекцию. |
E |
element() |
Возвращает голову очереди, представленной этим деком, но не удаляет ее. |
void |
forEach |
Выполняет заданное действие для каждого элемента Iterable до тех пор, пока все элементы не будут обработаны или действие не выбросит исключение. |
E |
getFirst() |
Возвращает первый элемент этого дека, но не удаляет его. |
E |
getLast() |
Возвращает последний элемент этого дека, но не удаляет его. |
Iterator<E> |
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<E> |
spliterator() |
Возвращает Spliterator по элементам в этом дека. |
E |
take() |
Возвращает и удаляет голову очереди, представленной этим деком (то есть первый элемент этого дека), ожидая в случае необходимости, пока элемент станет доступным. |
E |
takeFirst() |
Получает и удаляет первый элемент из этого очереди, ожидая, если необходимо, пока элемент не станет доступным. |
E |
takeLast() |
Получает и удаляет последний элемент из этого очереди, ожидая, если необходимо, пока элемент не станет доступным. |
E |
takeLast() |
Возвращает массив, содержащий все элементы в этом очереди в правильной последовательности (с первого по последний элемент). |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы в этом очереди в правильной последовательности; тип возвращаемого массива соответствует указанному массиву. |
Методы, объявленные в классе 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> - Параметры:
-
e- добавляемый элемент - Исключения:
-
IllegalStateException- если эта очередь заполнена -
NullPointerException- если указанный элемент равен null
addLast
public void addLast(E e)
BlockingDequeIllegalStateException, если свободной памяти нет. При использовании очереди с ограниченной ёмкостью, рекомендуется использовать offerLast.- Определено в:
-
addLastв интерфейсеBlockingDeque<E> - Определено в:
-
addLastв интерфейсеDeque<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> - Возвращает:
- голова этой очереди
- Исключения:
-
NoSuchElementException- если эта очередь пуста
removeLast
public E removeLast()
DequepollLast только тем, что он выбрасывает исключение, если эта очередь пуста.- Определено в:
-
removeLastв интерфейсеDeque<E> - Возвращает:
- хвост этой очереди
- Исключения:
-
NoSuchElementException- если эта очередь пуста
pollFirst
public E pollFirst()
Dequenull если этот дек пуст.- Определено в:
-
pollFirstв интерфейсеDeque<E> - Возвращает:
- голова этого дека, или
nullесли этот дек пуст
pollLast
public E pollLast()
Dequenull если этот дек пуст.- Определено в:
-
pollLastв интерфейсеDeque<E> - Возвращает:
- хвост этого дека, или
nullесли этот дек пуст
takeFirst
public E takeFirst() throws InterruptedException
BlockingDeque- Определено в:
-
takeFirstв интерфейсеBlockingDeque<E> - Возвращает:
- голова этого дека
- Выбрасывает:
-
InterruptedException- если прервано ожидание
takeLast
public E takeLast() throws InterruptedException
BlockingDeque- Определено в:
-
takeLastв интерфейсеBlockingDeque<E> - Возвращает:
- хвост этого дека
- Выбрасывает:
-
InterruptedException- если прервано ожидание
pollFirst
public E pollFirst(long timeout, TimeUnit unit) throws InterruptedException
BlockingDeque- Определено в:
-
pollFirstв интерфейсеBlockingDeque<E> - Параметры:
-
timeout- сколько времени ждать, прежде чем отказаться, в единицахunit -
unit-TimeUnitопределяющая, как интерпретировать параметрtimeout - Возвращает:
- голова этого дека, или
nullесли указанное время ожидания истекло, прежде чем элемент стал доступным - Выбрасывает:
-
InterruptedException- если прервано ожидание
pollLast
public E pollLast(long timeout, TimeUnit unit) throws InterruptedException
BlockingDeque- Определено в:
-
pollLastв интерфейсеBlockingDeque<E> - Параметры:
-
timeout- сколько времени ждать, прежде чем отказаться, в единицахunit -
unit-TimeUnitопределяющая, как интерпретировать параметрtimeout - Возвращает:
- хвост этого дека, или
nullесли указанное время ожидания истекло, прежде чем элемент стал доступным - Выбрасывает:
-
InterruptedException- если прервано ожидание
getFirst
public E getFirst()
DequepeekFirst только тем, что он выбрасывает исключение, если этот дек пуст.- Определено в:
-
getFirstв интерфейсеDeque<E> - Возвращает:
- голова этого дека
- Выбрасывает:
-
NoSuchElementException- если этот дек пуст
getLast
public E getLast()
DequepeekLast только тем, что он выбрасывает исключение, если этот дек пуст.- Определено в:
-
getLastв интерфейсеDeque<E> - Возвращает:
- хвост этого дека
- Выбрасывает:
-
NoSuchElementException- если этот дек пуст
peekFirst
public E peekFirst()
Dequenull если этот дек пуст.- Определено в:
-
peekFirstв интерфейсеDeque<E> - Возвращает:
- голова этого дека, или
nullесли этот дек пуст
peekLast
public E peekLast()
Dequenull если этот дек пуст.- Определено в:
-
peekLastв интерфейсеDeque<E> - Возвращает:
- хвост этого дека, или
nullесли этот дек пуст
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)
BlockingDequetrue при успехе и 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()
BlockingDequenull если этот массив пуст. Этот метод эквивалентен Deque.pollFirst().
- Определено в:
-
pollв интерфейсеBlockingDeque<E> - Определено в:
-
pollв интерфейсеDeque<E> - Определено в:
-
pollв интерфейсеQueue<E> - Возвращает:
- голову этого массива или
nullесли этот массив пуст
take
public E take() throws InterruptedException
BlockingDequeЭтот метод эквивалентен takeFirst.
- Определено в:
-
takeв интерфейсеBlockingDeque<E> - Определено в:
-
takeв интерфейсеBlockingQueue<E> - Возвращает:
- голову этого массива
- Исключения:
-
InterruptedException- если поток был прерван во время ожидания
poll
public E poll(long timeout, TimeUnit unit) throws InterruptedException
BlockingDequeЭтот метод эквивалентен pollFirst.
- Определено в:
-
pollв интерфейсеBlockingDeque<E> - Определено в:
-
pollв интерфейсеBlockingQueue<E> - Параметры:
-
timeout- время ожидания до отказа, в единицахunit -
unit-TimeUnitопределяющий, как интерпретировать параметрtimeout - Возвращает:
- голову этого массива, или
nullесли указанное время ожидания истекло до того, как элемент стал доступным - Исключения:
-
InterruptedException- если поток был прерван во время ожидания
element
public E element()
peek() только тем, что он выбрасывает исключение, если этот массив пуст. Этот метод эквивалентен getFirst.
- Определено в:
-
elementв интерфейсеBlockingDeque<E> - Определено в:
-
elementв интерфейсеDeque<E> - Определено в:
-
elementв интерфейсеQueue<E> - Переопределяет:
-
elementв классеAbstractQueue<E> - Возвращает:
- голову очереди, представленной этим массивом
- Исключения:
-
NoSuchElementException- если этот массив пуст
peek
public E peek()
BlockingDequenull если этот массив пуст. Этот метод эквивалентен peekFirst.
- Определено в:
-
peekв интерфейсеBlockingDeque<E> - Определено в:
-
peekв интерфейсеDeque<E> - Определено в:
-
peekв интерфейсеQueue<E> - Возвращает:
- голову этого массива, или
nullесли этот массив пуст
remainingCapacity
public int remainingCapacity()
size этого массива. Обратите внимание, что вы не всегда можете определить, будет ли попытка вставить элемент успешной, проверяя remainingCapacity потому что может быть, что другой поток собирается вставить или удалить элемент.
- Определено в:
-
remainingCapacityв интерфейсеBlockingQueue<E> - Возвращает:
- оставшуюся емкость
drainTo
public int drainTo(Collection<? super E> c)
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.
- Определено в:
-
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)
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, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/LinkedBlockingDeque.html