Класс DelayQueue<E extends Delayed>
- Параметры типа:
E- тип элементов, хранящихся в этой очереди
- Все реализуемые интерфейсы:
Iterable<E>, Collection<E>, BlockingQueue<E>, Queue<E>
public class DelayQueue<E extends Delayed> extends AbstractQueue<E> implements BlockingQueue<E>
Delayed, в которой элемент обычно становится доступным для удаления по истечении задержки.
Хотя этот класс реализует интерфейс BlockingQueue, он намеренно нарушает общий контракт BlockingQueue: следующие методы не учитывают наличие непросроченных элементов и удаляют только просроченную голову:
Все остальные методы работают как с просроченными, так и с непросроченными элементами. Например, метод size() возвращает количество всех элементов. Метод peek() может вернуть (ненулевую) голову, даже если take() заблокируется в ожидании истечения срока действия этого элемента.
Эта очередь не допускает элементы со значением null.
Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator. Не гарантируется, что итератор, предоставляемый методом iterator(), будет обходить элементы DelayQueue в каком-либо определённом порядке.
Этот класс входит в Java Collections Framework.
- Начиная с версии:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DelayQueue() |
Создаёт новую DelayQueue, изначально пустую. |
DelayQueue |
Создаёт DelayQueue, изначально содержащую элементы заданной коллекции экземпляров Delayed. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
add |
Вставляет указанный элемент в эту очередь с задержкой. |
void |
clear() |
Атомарно удаляет все элементы из этой очереди с задержкой. |
int |
drainTo |
Удаляет из этой очереди все доступные элементы и добавляет их в заданную коллекцию. |
int |
drainTo |
Удаляет из этой очереди не более заданного количества доступных элементов и добавляет их в заданную коллекцию. |
Iterator |
iterator() |
Возвращает итератор по всем элементам этой очереди (как просроченным, так и непросроченным). |
boolean |
offer |
Вставляет указанный элемент в эту очередь с задержкой. |
boolean |
offer |
Вставляет указанный элемент в эту очередь с задержкой. |
E |
peek() |
Извлекает, но не удаляет голову этой очереди или возвращает null, если очередь пуста. |
E |
poll() |
Извлекает и удаляет просроченную голову этой очереди или возвращает null, если в очереди нет просроченных элементов. |
E |
poll |
Извлекает и удаляет просроченную голову этой очереди, при необходимости ожидая появления в очереди просроченного элемента или истечения указанного времени ожидания. |
void |
put |
Вставляет указанный элемент в эту очередь с задержкой. |
int |
remainingCapacity() |
Всегда возвращает Integer.MAX_VALUE, поскольку DelayQueue не ограничена по ёмкости. |
E |
remove() |
Извлекает и удаляет просроченную голову этой очереди или выбрасывает исключение, если в очереди нет просроченных элементов. |
boolean |
remove |
Удаляет один экземпляр указанного элемента из этой очереди, если он присутствует, независимо от того, истёк ли срок его действия. |
int |
size() |
Возвращает количество элементов в этой коллекции. |
E |
take() |
Извлекает и удаляет просроченную голову этой очереди, при необходимости ожидая появления в очереди просроченного элемента. |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этой очереди. |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой очереди; тип возвращаемого массива во время выполнения совпадает с типом заданного массива. |
Методы, объявленные в классе AbstractQueue
addAll, element | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
addAll |
Добавляет все элементы заданной коллекции в эту очередь. |
E |
element() |
Извлекает, но не удаляет голову этой очереди. |
Методы, объявленные в классе AbstractCollection
contains, containsAll, isEmpty, removeAll, retainAll, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
contains |
Возвращает true, если эта коллекция содержит указанный элемент. |
boolean |
containsAll |
Возвращает true, если эта коллекция содержит все элементы заданной коллекции. |
boolean |
isEmpty() |
Возвращает true, если эта коллекция не содержит элементов. |
boolean |
removeAll |
Удаляет из этой коллекции все элементы, которые также содержатся в заданной коллекции (необязательная операция). |
boolean |
retainAll |
Оставляет в этой коллекции только элементы, содержащиеся в заданной коллекции (необязательная операция). |
String |
toString() |
Возвращает строковое представление этой коллекции. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс объекта Object во время выполнения. |
int |
hashCode() |
Возвращает значение хеш-кода этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе BlockingQueue
contains | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
contains |
Возвращает true, если эта очередь содержит указанный элемент. |
Методы, объявленные в интерфейсе Collection
equals, hashCode, parallelStream, removeIf, spliterator, stream, toArray | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный объект с этой коллекцией на равенство. |
int |
hashCode() |
Возвращает значение хеш-кода этой коллекции. |
default Stream |
parallelStream() |
Возвращает, возможно параллельный, Stream, источником которого является эта коллекция. |
default boolean |
removeIf |
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательная операция). |
default Spliterator |
spliterator() |
Создаёт Spliterator для элементов этой коллекции. |
default Stream |
stream() |
Возвращает последовательный Stream, источником которого является эта коллекция. |
default <T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator. |
Подробное описание конструкторов
DelayQueue
public DelayQueue()
DelayQueue, изначально пустую.DelayQueue
public DelayQueue(Collection<? extends E> c)
DelayQueue, изначально содержащую элементы указанной коллекции экземпляров Delayed.- Параметры:
-
c- коллекция элементов, которые должны содержаться в очереди изначально - Исключения:
-
NullPointerException- если указанная коллекция или любой из ее элементов равны null
Подробное описание методов
add
public boolean add(E e)
- Определено в:
-
addв интерфейсеBlockingQueue<E extends Delayed> - Определено в:
-
addв интерфейсеCollection<E extends Delayed> - Определено в:
-
addв интерфейсеQueue<E extends Delayed> - Переопределено:
-
addв классеAbstractQueue<E extends Delayed> - Параметры:
-
e- добавляемый элемент - Возвращает:
-
true(как указано вCollection.add(E)) - Исключения:
-
NullPointerException- если указанный элемент равен null
offer
public boolean offer(E e)
- Определено в:
-
offerв интерфейсеBlockingQueue<E extends Delayed> - Определено в:
-
offerв интерфейсеQueue<E extends Delayed> - Параметры:
-
e- добавляемый элемент - Возвращает:
true- Исключения:
-
NullPointerException- если указанный элемент равен null
put
public void put(E e)
- Определено в:
-
putв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
e- добавляемый элемент - Исключения:
-
NullPointerException- если указанный элемент равен null
offer
public boolean offer(E e, long timeout, TimeUnit unit)
- Определено в:
-
offerв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
e- добавляемый элемент -
timeout- этот параметр игнорируется, поскольку метод никогда не блокирует выполнение -
unit- этот параметр игнорируется, поскольку метод никогда не блокирует выполнение - Возвращает:
true- Исключения:
-
NullPointerException- если указанный элемент равен null
poll
public E poll()
null, если в этой очереди нет просроченных элементов.take
public E take() throws InterruptedException
- Определено в:
-
takeв интерфейсеBlockingQueue<E extends Delayed> - Возвращает:
- просроченный элемент в голове очереди
- Исключения:
-
InterruptedException- если ожидание было прервано
poll
public E poll(long timeout, TimeUnit unit) throws InterruptedException
- Определено в:
-
pollв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
timeout- время ожидания до прекращения ожидания, в единицахunit -
unit-TimeUnit, определяющий, как интерпретировать параметрtimeout - Возвращает:
- просроченный элемент в голове очереди или
null, если указанное время ожидания истекло до появления элемента с истекшей задержкой - Исключения:
-
InterruptedException- если ожидание было прервано
remove
public E remove()
- Определено в:
-
removeв интерфейсеQueue<E extends Delayed> - Переопределено:
-
removeв классеAbstractQueue<E extends Delayed> - Возвращает:
- просроченный элемент в голове очереди
- Исключения:
-
NoSuchElementException- если в этой очереди нет элементов с истекшей задержкой - Начиная с:
- 21
peek
public E peek()
null, если очередь пуста. В отличие от poll, если в очереди нет просроченных элементов, этот метод возвращает элемент, срок действия которого истечет следующим, если такой элемент существует.size
public int size()
CollectionInteger.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.- Определено в:
-
sizeв интерфейсеCollection<E extends Delayed> - Возвращает:
- количество элементов в этой коллекции
drainTo
public int drainTo(Collection<? super E> c)
BlockingQueuec может привести к тому, что на момент выброса соответствующего исключения элементы будут находиться ни в одной, в одной или в обеих коллекциях. Попытка перенести элементы очереди в нее же приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время ее выполнения.- Определено в:
-
drainToв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
c- коллекция, в которую следует перенести элементы - Возвращает:
- количество перенесенных элементов
- Исключения:
-
UnsupportedOperationException- если указанная коллекция не поддерживает добавление элементов -
ClassCastException- если класс элемента этой очереди препятствует его добавлению в указанную коллекцию -
NullPointerException- если указанная коллекция равна null -
IllegalArgumentException- если указанная коллекция является этой очередью или какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию
drainTo
public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueuec может привести к тому, что на момент выброса соответствующего исключения элементы будут находиться ни в одной, в одной или в обеих коллекциях. Попытка перенести элементы очереди в нее же приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время ее выполнения.- Определено в:
-
drainToв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
c- коллекция, в которую следует перенести элементы -
maxElements- максимальное количество элементов для переноса - Возвращает:
- количество перенесенных элементов
- Исключения:
-
UnsupportedOperationException- если указанная коллекция не поддерживает добавление элементов -
ClassCastException- если класс элемента этой очереди препятствует его добавлению в указанную коллекцию -
NullPointerException- если указанная коллекция равна null -
IllegalArgumentException- если указанная коллекция является этой очередью или какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию
clear
public void clear()
- Определено в:
-
clearв интерфейсеCollection<E extends Delayed> - Переопределено:
-
clearв классеAbstractQueue<E extends Delayed>
remainingCapacity
public int remainingCapacity()
Integer.MAX_VALUE, поскольку DelayQueue не ограничена по емкости.- Определено в:
-
remainingCapacityв интерфейсеBlockingQueue<E extends Delayed> - Возвращает:
Integer.MAX_VALUE
toArray
public Object[] toArray()
Возвращаемый массив является «безопасным»: эта очередь не хранит на него ссылок. (Иными словами, этот метод должен выделить новый массив.) Поэтому вызывающий код может изменять возвращенный массив.
Этот метод служит связующим звеном между API на основе массивов и API на основе коллекций.
- Определено в:
-
toArrayв интерфейсеCollection<E extends Delayed> - Переопределено:
-
toArrayв классеAbstractCollection<E extends Delayed> - Возвращает:
- массив, содержащий все элементы этой очереди
toArray
public <T> T[] toArray(T[] a)
Если очередь помещается в указанный массив с запасом (то есть массив содержит больше элементов, чем очередь), элемент массива, непосредственно следующий за концом очереди, устанавливается в null.
Как и метод toArray(), этот метод служит связующим звеном между API на основе массивов и API на основе коллекций. Кроме того, этот метод позволяет точно управлять типом выходного массива во время выполнения и в определенных обстоятельствах может использоваться для сокращения затрат на выделение памяти.
Следующий код можно использовать для выгрузки очереди с задержкой в новый массив, выделенный для Delayed:
Delayed[] a = q.toArray(new Delayed[0]); Обратите внимание, что toArray(new Object[0]) функционально идентичен toArray().- Определено в:
-
toArrayв интерфейсеCollection<E extends Delayed> - Переопределено:
-
toArrayв классеAbstractCollection<E extends Delayed> - Параметры типа:
T- тип компонентов массива, в котором будет храниться коллекция- Параметры:
-
a- массив, в который следует поместить элементы очереди, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа во время выполнения - Возвращает:
- массив, содержащий все элементы этой очереди
- Исключения:
-
ArrayStoreException- если тип указанного массива во время выполнения не является супертипом типа каждого элемента этой очереди во время выполнения -
NullPointerException- если указанный массив равен null
remove
public boolean remove(Object o)
- Определено в:
-
removeв интерфейсеBlockingQueue<E extends Delayed> - Определено в:
-
removeв интерфейсеCollection<E extends Delayed> - Переопределено:
-
removeв классеAbstractCollection<E extends Delayed> - Параметры:
-
o- элемент, который следует удалить из этой коллекции, если он присутствует - Возвращает:
-
true, если в результате этого вызова был удален элемент
iterator
public Iterator<E> iterator()
Возвращаемый итератор является слабо согласованным.
© 1993, 2025, 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.