|
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, remainingCapacitydescendingIterator, getFirst, getLast, peekFirst, peekLast, pollFirst, pollLast, pop, removeFirst, removeLastaddAll, clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArrayforEachvoid 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