Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic interface BlockingDeque<E> extends BlockingQueue<E>, Deque<E>
Deque
это дополнительно поддерживает операции блокирования, которые ожидают двухсторонней очереди, чтобы стать непустыми, получая элемент, и ожидать пространства, чтобы стать доступными в двухсторонней очереди, храня элемент. Методы BlockingDeque, прибывшие в четыре формы, с различными способами погрузочно-разгрузочных работ, которые не могут быть сразу удовлетворены, но могут быть удовлетворены в некоторый момент в будущем: каждый выдает исключение, вторые возвраты специальное значение (или null или false, в зависимости от работы), третьи блоки текущий поток неопределенно, пока работа не может успешно выполниться, и четвертые блоки для только данного максимального ограничения по времени перед отказом. Эти методы получаются в итоге в следующей таблице:
Первый Элемент (Голова) | ||||
Выдает исключение | Специальное значение | Блоки | Времена | |
Вставить | addFirst(e) |
offerFirst(e) |
putFirst(e) |
offerFirst(e, time, unit) |
Удалить | removeFirst() |
pollFirst() |
takeFirst() |
pollFirst(time, unit) |
Исследовать | getFirst() |
peekFirst() |
не применимый | не применимый |
Последний Элемент (Хвост) | ||||
Выдает исключение | Специальное значение | Блоки | Времена | |
Вставить | addLast(e) |
offerLast(e) |
putLast(e) |
offerLast(e, time, unit) |
Удалить | removeLast() |
pollLast() |
takeLast() |
pollLast(time, unit) |
Исследовать | getLast() |
peekLast() |
не применимый | не применимый |
Как любой BlockingQueue
, BlockingDeque ориентирован на многопотоковое исполнение, не разрешает нулевые элементы, и может (или не может) быть ограниченным емкостью.
Реализация BlockingDeque может использоваться непосредственно в качестве FIFO BlockingQueue. Методы, наследованные от интерфейса BlockingQueue, точно эквивалентны методам BlockingDeque как обозначено в следующей таблице:
Метод BlockingQueue | Эквивалентный Метод BlockingDeque |
Вставить | |
add(e) |
addLast(e) |
offer(e) |
offerLast(e) |
put(e) |
putLast(e) |
offer(e, time, unit) |
offerLast(e, time, unit) |
Удалить | |
remove() |
removeFirst() |
poll() |
pollFirst() |
take() |
takeFirst() |
poll(time, unit) |
pollFirst(time, unit) |
Исследовать | |
element() |
getFirst() |
peek() |
peekFirst() |
Эффекты непротиворечивости памяти: Как с другими параллельными наборами, действиями в потоке до размещения объекта в a BlockingDeque
произойдите - перед действиями, последующими за доступом или удалением того элемента от BlockingDeque
в другом потоке.
Этот интерфейс является элементом Платформы Наборов Java.
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Вставляет указанный элемент в очередь, представленную этой двухсторонней очередью (другими словами, в хвосте этой двухсторонней очереди), если возможно сделать так сразу, не нарушая ограничения емкости, возвращая true на успех и бросая IllegalStateException, если никакое пространство не в настоящий момент доступно.
|
void |
addFirst(E e)
Вставляет указанный элемент впереди этой двухсторонней очереди, если возможно сделать так сразу, не нарушая ограничения емкости, бросая IllegalStateException, если никакое пространство не в настоящий момент доступно.
|
void |
addLast(E e)
Вставляет указанный элемент в конце этой двухсторонней очереди, если возможно сделать так сразу, не нарушая ограничения емкости, бросая IllegalStateException, если никакое пространство не в настоящий момент доступно.
|
boolean |
contains(Object o)
true возвратов, если эта двухсторонняя очередь содержит указанный элемент.
|
E |
element()
Получает, но не удаляет, глава очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди).
|
Iterator<E> |
iterator()
Возвращает iterator по элементам в этой двухсторонней очереди в надлежащей последовательности.
|
boolean |
offer(E e)
Вставляет указанный элемент в очередь, представленную этой двухсторонней очередью (другими словами, в хвосте этой двухсторонней очереди), если возможно сделать так сразу, не нарушая ограничения емкости, возвращая true на успех и false, если никакое пространство не в настоящий момент доступно.
|
boolean |
offer(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент в очередь, представленную этой двухсторонней очередью (другими словами, в хвосте этой двухсторонней очереди), дожидаясь к указанному времени ожидания в случае необходимости для пространства, чтобы стать доступным.
|
boolean |
offerFirst(E e)
Вставляет указанный элемент впереди этой двухсторонней очереди, если возможно сделать так сразу, не нарушая ограничения емкости, возвращая true на успех и false, если никакое пространство не в настоящий момент доступно.
|
boolean |
offerFirst(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент впереди этой двухсторонней очереди, дожидаясь к указанному времени ожидания в случае необходимости для пространства, чтобы стать доступным.
|
boolean |
offerLast(E e)
Вставляет указанный элемент в конце этой двухсторонней очереди, если возможно сделать так сразу, не нарушая ограничения емкости, возвращая true на успех и false, если никакое пространство не в настоящий момент доступно.
|
boolean |
offerLast(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент в конце этой двухсторонней очереди, дожидаясь к указанному времени ожидания в случае необходимости для пространства, чтобы стать доступным.
|
E |
peek()
Получает, но не удаляет, глава очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди), или возвращает null, если эта двухсторонняя очередь пуста.
|
E |
poll()
Получает и удаляет главу очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди), или возвращает null, если эта двухсторонняя очередь пуста.
|
E |
poll(long timeout, TimeUnit unit)
Получает и удаляет главу очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди), дожидаясь к указанному времени ожидания в случае необходимости для элемента, чтобы стать доступным.
|
E |
pollFirst(long timeout, TimeUnit unit)
Получает и удаляет первый элемент этой двухсторонней очереди, дожидаясь к указанному времени ожидания в случае необходимости для элемента, чтобы стать доступным.
|
E |
pollLast(long timeout, TimeUnit unit)
Получает и удаляет последний элемент этой двухсторонней очереди, дожидаясь к указанному времени ожидания в случае необходимости для элемента, чтобы стать доступным.
|
void |
push(E e)
Продвигает элемент на стек, представленный этой двухсторонней очередью.
|
void |
put(E e)
Вставляет указанный элемент в очередь, представленную этой двухсторонней очередью (другими словами, в хвосте этой двухсторонней очереди), ожидая в случае необходимости пространства, чтобы стать доступным.
|
void |
putFirst(E e)
Вставляет указанный элемент впереди этой двухсторонней очереди, ожидая в случае необходимости пространства, чтобы стать доступным.
|
void |
putLast(E e)
Вставляет указанный элемент в конце этой двухсторонней очереди, ожидая в случае необходимости пространства, чтобы стать доступным.
|
E |
remove()
Получает и удаляет главу очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди).
|
boolean |
remove(Object o)
Удаляет первое возникновение указанного элемента от этой двухсторонней очереди.
|
boolean |
removeFirstOccurrence(Object o)
Удаляет первое возникновение указанного элемента от этой двухсторонней очереди.
|
boolean |
removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента от этой двухсторонней очереди.
|
int |
size()
Возвращает число элементов в этой двухсторонней очереди.
|
E |
take()
Получает и удаляет главу очереди, представленной этой двухсторонней очередью (другими словами, первый элемент этой двухсторонней очереди), ожидая в случае необходимости, пока элемент не становится доступным.
|
E |
takeFirst()
Получает и удаляет первый элемент этой двухсторонней очереди, ожидая в случае необходимости, пока элемент не становится доступным.
|
E |
takeLast()
Получает и удаляет последний элемент этой двухсторонней очереди, ожидая в случае необходимости, пока элемент не становится доступным.
|
drainTo, drainTo, remainingCapacity
descendingIterator, getFirst, getLast, peekFirst, peekLast, pollFirst, pollLast, pop, removeFirst, removeLast
addAll, clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArray
forEach
void addFirst(E e)
offerFirst
.addFirst
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьIllegalStateException
- если элемент не может быть добавлен в это время из-за ограничений емкостиClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиvoid addLast(E e)
offerLast
.addLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьIllegalStateException
- если элемент не может быть добавлен в это время из-за ограничений емкостиClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offerFirst(E e)
addFirst
метод, который может быть не в состоянии вставить элемент только, выдавая исключение.offerFirst
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offerLast(E e)
addLast
метод, который может быть не в состоянии вставить элемент только, выдавая исключение.offerLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиvoid putFirst(E e) throws InterruptedException
e
- элемент, чтобы добавитьInterruptedException
- если прервано, ожидаяClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиvoid putLast(E e) throws InterruptedException
e
- элемент, чтобы добавитьInterruptedException
- если прервано, ожидаяClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offerFirst(E e, long timeout, TimeUnit unit) throws InterruptedException
e
- элемент, чтобы добавитьtimeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException
e
- элемент, чтобы добавитьtimeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиE takeFirst() throws InterruptedException
InterruptedException
- если прервано, ожидаяE takeLast() throws InterruptedException
InterruptedException
- если прервано, ожидаяE pollFirst(long timeout, TimeUnit unit) throws InterruptedException
timeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяE pollLast(long timeout, TimeUnit unit) throws InterruptedException
timeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяboolean removeFirstOccurrence(Object o)
removeFirstOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийClassCastException
- если class указанного элемента является несовместимым с этой (дополнительной) двухсторонней очередьюNullPointerException
- если указанный элемент является (дополнительным) нулемboolean removeLastOccurrence(Object o)
removeLastOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийClassCastException
- если class указанного элемента является несовместимым с этой (дополнительной) двухсторонней очередьюNullPointerException
- если указанный элемент является (дополнительным) нулемboolean add(E e)
offer
. Этот метод эквивалентен addLast
.
add
в интерфейсе BlockingQueue<E>
add
в интерфейсе Collection<E>
add
в интерфейсе Deque<E>
add
в интерфейсе Queue<E>
e
- элемент, чтобы добавитьCollection.add(E)
)IllegalStateException
- если элемент не может быть добавлен в это время из-за ограничений емкостиClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offer(E e)
add(E)
метод, который может быть не в состоянии вставить элемент только, выдавая исключение. Этот метод эквивалентен offerLast
.
offer
в интерфейсе BlockingQueue<E>
offer
в интерфейсе Deque<E>
offer
в интерфейсе Queue<E>
e
- элемент, чтобы добавитьClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиvoid put(E e) throws InterruptedException
Этот метод эквивалентен putLast
.
put
в интерфейсе BlockingQueue<E>
e
- элемент, чтобы добавитьInterruptedException
- если прервано, ожидаяClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
Этот метод эквивалентен offerLast
.
offer
в интерфейсе BlockingQueue<E>
e
- элемент, чтобы добавитьtimeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиE remove()
poll
только в этом это выдает исключение, если эта двухсторонняя очередь пуста. Этот метод эквивалентен removeFirst
.
E poll()
Этот метод эквивалентен Deque.pollFirst()
.
E take() throws InterruptedException
Этот метод эквивалентен takeFirst
.
take
в интерфейсе BlockingQueue<E>
InterruptedException
- если прервано, ожидаяE poll(long timeout, TimeUnit unit) throws InterruptedException
Этот метод эквивалентен pollFirst
.
poll
в интерфейсе BlockingQueue<E>
timeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяE element()
E peek()
Этот метод эквивалентен peekFirst
.
boolean remove(Object o)
Этот метод эквивалентен removeFirstOccurrence
.
remove
в интерфейсе BlockingQueue<E>
remove
в интерфейсе Collection<E>
remove
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийClassCastException
- если class указанного элемента является несовместимым с этой (дополнительной) двухсторонней очередьюNullPointerException
- если указанный элемент является (дополнительным) нулемboolean contains(Object o)
contains
в интерфейсе BlockingQueue<E>
contains
в интерфейсе Collection<E>
contains
в интерфейсе Deque<E>
o
- объект, который будет проверен на включение в этой двухсторонней очередиClassCastException
- если class указанного элемента является несовместимым с этой (дополнительной) двухсторонней очередьюNullPointerException
- если указанный элемент является (дополнительным) нулемint size()
Iterator<E> iterator()
void push(E e)
Этот метод эквивалентен addFirst
.
push
в интерфейсе Deque<E>
e
- элемент, чтобы продвинутьIllegalStateException
- если элемент не может быть добавлен в это время из-за ограничений емкостиClassCastException
- если class указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очереди
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92