Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic class LinkedBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, Serializable
Дополнительная емкость связанный параметр конструктора служит способом предотвратить чрезмерное расширение очереди. Емкость, если неуказанный, равна Integer.MAX_VALUE
. Соединенные узлы динамически создаются на каждую вставку, если это не принесло бы очередь выше емкости.
Этот класс и его iterator реализуют все дополнительные методы Collection
и Iterator
интерфейсы.
Этот класс является элементом Платформы Наборов Java.
Конструктор и Описание |
---|
LinkedBlockingQueue()
Создает a
LinkedBlockingQueue с емкостью Integer.MAX_VALUE . |
LinkedBlockingQueue(Collection<? extends E> c)
Создает a
LinkedBlockingQueue с емкостью Integer.MAX_VALUE , первоначально содержа элементы данного набора, добавленного в порядке обхода iterator набора. |
LinkedBlockingQueue(int capacity)
Создает a
LinkedBlockingQueue с данной (фиксированной) емкостью. |
Модификатор и Тип | Метод и Описание |
---|---|
void |
clear()
Атомарно удаляет все элементы от этой очереди.
|
boolean |
contains(Object o)
Возвраты
true если эта очередь содержит указанный элемент. |
int |
drainTo(Collection<? super E> c)
Удаляет все доступные элементы из этой очереди и добавляет их к данному набору.
|
int |
drainTo(Collection<? super E> c, int maxElements)
Удаляет самое большее данное число доступных элементов от этой очереди и добавляет их к данному набору.
|
Iterator<E> |
iterator()
Возвращает iterator по элементам в этой очереди в надлежащей последовательности.
|
boolean |
offer(E e)
Вставляет указанный элемент в хвосте этой очереди, если возможно сделать так сразу, не превышая емкость очереди, возвращаясь
true на успех и false если эта очередь полна. |
boolean |
offer(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент в хвосте этой очереди, ожидая в случае необходимости до указанного времени ожидания для пространства, чтобы стать доступным.
|
E |
peek()
Получает, но не удаляет, глава этой очереди, или возвращает null, если эта очередь пуста.
|
E |
poll()
Получает и удаляет главу этой очереди, или возвращает null, если эта очередь пуста.
|
E |
poll(long timeout, TimeUnit unit)
Получает и удаляет главу этой очереди, дожидаясь к указанному времени ожидания в случае необходимости для элемента, чтобы стать доступным.
|
void |
put(E e)
Вставляет указанный элемент в хвосте этой очереди, ожидая в случае необходимости пространства, чтобы стать доступным.
|
int |
remainingCapacity()
Возвращает число дополнительных элементов, что эта очередь может идеально (в отсутствие памяти, или ограничения ресурса) принимают без блокирования.
|
boolean |
remove(Object o)
Удаляет единственный экземпляр указанного элемента от этой очереди, если это присутствует.
|
int |
size()
Возвращает число элементов в этой очереди.
|
E |
take()
Получает и удаляет главу этой очереди, ожидая в случае необходимости, пока элемент не становится доступным.
|
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этой очереди, в надлежащей последовательности.
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этой очереди, в надлежащей последовательности; тип времени выполнения возвращенного массива является типом указанного массива.
|
Строка |
toString()
Возвращает строковое представление этого набора.
|
add, addAll, element, remove
containsAll, isEmpty, removeAll, retainAll
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
добавить
public LinkedBlockingQueue()
LinkedBlockingQueue
с емкостью Integer.MAX_VALUE
.public LinkedBlockingQueue(int capacity)
LinkedBlockingQueue
с данной (фиксированной) емкостью.capacity
- емкость этой очередиIllegalArgumentException
- если capacity
не больше чем нульpublic LinkedBlockingQueue(Collection<? extends E> c)
LinkedBlockingQueue
с емкостью Integer.MAX_VALUE
, первоначально содержа элементы данного набора, добавленного в порядке обхода iterator набора.c
- набор элементов, чтобы первоначально содержатьNullPointerException
- если указанный набор или какой-либо из его элементов являются нулемpublic int size()
size
в интерфейсе Collection<E>
size
в классе AbstractCollection<E>
public int remainingCapacity()
size
из этой очереди. Отметьте, что невозможно всегда говорить, успешно выполнится ли попытка вставить элемент, осматривая remainingCapacity
потому что это может иметь место, что другой поток собирается вставить или удалить элемент.
remainingCapacity
в интерфейсе BlockingQueue<E>
public void put(E e) throws InterruptedException
put
в интерфейсе BlockingQueue<E>
e
- элемент, чтобы добавитьInterruptedException
- если прервано, ожидаяNullPointerException
- если указанный элемент является нулемpublic boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException
offer
в интерфейсе BlockingQueue<E>
e
- элемент, чтобы добавитьtimeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeouttrue
в случае успеха, или false
если указанное время ожидания протекает прежде, чем пространство доступно.InterruptedException
- если прервано, ожидаяNullPointerException
- если указанный элемент является нулемpublic boolean offer(E e)
true
на успех и false
если эта очередь полна. При использовании ограниченной емкостью очереди этот метод обычно предпочтителен для метода add
, который может быть не в состоянии вставить элемент только, выдавая исключение.offer
в интерфейсе BlockingQueue<E>
offer
в интерфейсе Queue<E>
e
- элемент, чтобы добавитьNullPointerException
- если указанный элемент является нулемpublic E take() throws InterruptedException
BlockingQueue
take
в интерфейсе BlockingQueue<E>
InterruptedException
- если прервано, ожидаяpublic E poll(long timeout, TimeUnit unit) throws InterruptedException
BlockingQueue
poll
в интерфейсе BlockingQueue<E>
timeout
- сколько времени ожидать перед отказом в модулях unitunit
- TimeUnit, определяющий, как интерпретировать параметр timeoutInterruptedException
- если прервано, ожидаяpublic E poll()
Queue
public E peek()
Queue
public boolean remove(Object o)
e
так, что o.equals(e)
, если эта очередь содержит один или более таких элементов. Возвраты true
если эта очередь, содержавшая указанный элемент (или эквивалентно, если эта очередь изменилась в результате вызова).remove
в интерфейсе Collection<E>
remove
в интерфейсе BlockingQueue<E>
remove
в классе AbstractCollection<E>
o
- элемент, который будет удален из этой очереди, если существующийtrue
если эта очередь изменилась в результате вызоваpublic boolean contains(Object o)
true
если эта очередь содержит указанный элемент. Более формально, возвраты true
если и только если эта очередь содержит по крайней мере один элемент e
так, что o.equals(e)
.contains
в интерфейсе Collection<E>
contains
в интерфейсе BlockingQueue<E>
contains
в классе AbstractCollection<E>
o
- объект, который будет проверен на включение в этой очередиtrue
если эта очередь содержит указанный элементpublic Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этой очередью. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в классе AbstractCollection<E>
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>
a
- массив, в который должны быть сохранены элементы очереди, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой цельюArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой очередиNullPointerException
- если указанный массив является нулемpublic String toString()
AbstractCollection
String.valueOf(Object)
.toString
в классе AbstractCollection<E>
public void clear()
clear
в интерфейсе Collection<E>
clear
в классе AbstractQueue<E>
public int drainTo(Collection<? super E> c)
BlockingQueue
drainTo
в интерфейсе BlockingQueue<E>
c
- набор, чтобы передать элементы вUnsupportedOperationException
- если добавление элементов не поддерживается указанным наборомClassCastException
- если класс элемента этой очереди препятствует тому, чтобы это было добавлено к указанному наборуNullPointerException
- если указанный набор является нулемIllegalArgumentException
- если указанный набор является этой очередью, или некоторое свойство элемента этой очереди препятствует тому, чтобы это было добавлено к указанному наборуpublic int drainTo(Collection<? super E> c, int maxElements)
BlockingQueue
drainTo
в интерфейсе BlockingQueue<E>
c
- набор, чтобы передать элементы вmaxElements
- максимальное количество элементов, чтобы передатьUnsupportedOperationException
- если добавление элементов не поддерживается указанным наборомClassCastException
- если класс элемента этой очереди препятствует тому, чтобы это было добавлено к указанному наборуNullPointerException
- если указанный набор является нулемIllegalArgumentException
- если указанный набор является этой очередью, или некоторое свойство элемента этой очереди препятствует тому, чтобы это было добавлено к указанному наборуpublic Iterator<E> iterator()
Возвращенный iterator "слабо непротиворечивый" iterator, который никогда не будет бросать ConcurrentModificationException
, и гарантии, чтобы пересечь элементы, поскольку они существовали на конструкцию iterator, и может (но не гарантироваться), отражают любые модификации, последующие за конструкцией.
iterator
в интерфейсе Iterable<E>
iterator
в интерфейсе Collection<E>
iterator
в классе AbstractCollection<E>
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.