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
void addFirst(E e)
offerFirst
.addFirst
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьIllegalStateException
- если элемент не может быть добавлен в это время из-за ограничений емкостиClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиvoid addLast(E e)
offerLast
.addLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьIllegalStateException
- если элемент не может быть добавлен в это время из-за ограничений емкостиClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offerFirst(E e)
addFirst
метод, который может быть не в состоянии вставить элемент только, выдавая исключение.offerFirst
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offerLast(E e)
addLast
метод, который может быть не в состоянии вставить элемент только, выдавая исключение.offerLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиvoid putFirst(E e) throws InterruptedException
e
- элемент, чтобы добавитьInterruptedException
- если прервано, ожидаяClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиvoid putLast(E e) throws InterruptedException
e
- элемент, чтобы добавитьInterruptedException
- если прервано, ожидаяClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offerFirst(E e, long timeout, TimeUnit unit) throws InterruptedException
e
- элемент, чтобы добавитьtimeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offerLast(E e, long timeout, TimeUnit unit) throws InterruptedException
e
- элемент, чтобы добавитьtimeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очереди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
- если класс указанного элемента является несовместимым с этой (дополнительной) двухсторонней очередьюNullPointerException
- если указанный элемент является (дополнительным) нулемboolean removeLastOccurrence(Object o)
removeLastOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийClassCastException
- если класс указанного элемента является несовместимым с этой (дополнительной) двухсторонней очередью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
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offer(E e)
add(E)
метод, который может быть не в состоянии вставить элемент только, выдавая исключение. Этот метод эквивалентен offerLast
.
offer
в интерфейсе BlockingQueue<E>
offer
в интерфейсе Deque<E>
offer
в интерфейсе Queue<E>
e
- элемент, чтобы добавитьClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиvoid put(E e) throws InterruptedException
Этот метод эквивалентен putLast
.
put
в интерфейсе BlockingQueue<E>
e
- элемент, чтобы добавитьInterruptedException
- если прервано, ожидаяClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиboolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
Этот метод эквивалентен offerLast
.
offer
в интерфейсе BlockingQueue<E>
e
- элемент, чтобы добавитьtimeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очереди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
- если класс указанного элемента является несовместимым с этой (дополнительной) двухсторонней очередьюNullPointerException
- если указанный элемент является (дополнительным) нулемboolean contains(Object o)
contains
в интерфейсе BlockingQueue<E>
contains
в интерфейсе Collection<E>
contains
в интерфейсе Deque<E>
o
- объект, который будет проверен на включение в этой двухсторонней очередиClassCastException
- если класс указанного элемента является несовместимым с этой (дополнительной) двухсторонней очередьюNullPointerException
- если указанный элемент является (дополнительным) нулемint size()
Iterator<E> iterator()
void push(E e)
Этот метод эквивалентен addFirst
.
push
в интерфейсе Deque<E>
e
- элемент, чтобы продвинутьIllegalStateException
- если элемент не может быть добавлен в это время из-за ограничений емкостиClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очередиNullPointerException
- если указанный элемент является нулемIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой двухсторонней очереди
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.