Класс LinkedBlockingDeque<E>
- Type Parameters:
-
E- тип элементов, хранящихся в этом deque
- Все реализованные интерфейсы:
-
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 Framework.
- Since:
- 1.6
- See Also:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinkedBlockingDeque() |
Создает LinkedBlockingDeque с емкостью Integer.MAX_VALUE. |
LinkedBlockingDeque |
Создает LinkedBlockingDeque с заданной (фиксированной) емкостью. |
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 |
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 |
Возвращает массив, содержащий все элементы в этом очереди в правильном порядке; тип возвращаемого массива соответствует указанному массиву. |
Методы, объявленные в классе 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
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> - Определено в:
-
getFirstв интерфейсеSequencedCollection<E> - Возвращает:
- голову этой очереди с двумя концами
- Выбрасывает:
-
NoSuchElementException- если эта очередь с двумя концами пуста
getLast
public E getLast()
DequepeekLast только тем, что выбрасывает исключение, если эта очередь с двумя концами пуста.- Определено в:
-
getLastв интерфейсеDeque<E> - Определено в:
-
getLastв интерфейсеSequencedCollection<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).
- 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)
BlockingDequetrue при успехе и 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()
BlockingDequenull если этот дек пуст. Этот метод эквивалентен Deque.pollFirst().
- Specified by:
-
pollв интерфейсеBlockingDeque<E> - Specified by:
-
pollв интерфейсеDeque<E> - Specified by:
-
pollв интерфейсеQueue<E> - Returns:
- голова этого дека, или
nullесли этот дек пуст
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()
BlockingDequenull если этот дек пуст. Этот метод эквивалентен peekFirst.
- Specified by:
-
peekв интерфейсеBlockingDeque<E> - Specified by:
-
peekв интерфейсеDeque<E> - Specified by:
-
peekв интерфейсеQueue<E> - Returns:
- голова этого дека, или
nullесли этот дек пуст
остающаясяЁмкость
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в интерфейсе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, 2023, 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/21/docs/api/java.base/java/util/concurrent/LinkedBlockingDeque.html