Spec-Zone.ru › OpenJDK 17

Класс DelayQueue<E extends Delayed>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
java.util.concurrent.DelayQueue<E>
Type Parameters:
E - тип элементов, хранимых в этой очереди
Все реализованные интерфейсы:
Iterable<E>, Collection<E>, BlockingQueue<E>, Queue<E>
public class DelayQueue<E extends Delayed> extends AbstractQueue<E> implements BlockingQueue<E>
Неограниченная блокирующая очередь элементов, в которой элемент можно получить только после истечения его отсрочки. Голова очереди — это элемент, чья отсрочка истекла наиболее давно. Если никакая отсрочка не истекла, в очереди нет головы, и метод poll вернёт null. Истечение отсрочки происходит, когда метод getDelay(TimeUnit.NANOSECONDS) элемента возвращает значение, меньшее или равное нулю. Несмотря на то, что элементы с неистекшей отсрочкой не могут быть удалены с помощью take или poll, они обрабатываются как обычные элементы. Например, метод size возвращает количество элементов, как истекших, так и неистекших. Эта очередь не допускает нулевых элементов.

Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator. Итератор, предоставляемый методом iterator(), не гарантирует проход по элементам DelayQueue в определённом порядке.

Этот класс является частью фреймворка Java Collections Framework.

Since:
1.5

Краткое описание конструкторов

Конструктор Описание
DelayQueue()
Создаёт новую DelayQueue, которая изначально пуста.
DelayQueue(Collection<? extends E> c)
Создаёт DelayQueue, содержащую изначально элементы заданной коллекции экземпляров Delayed.

Краткое описание методов

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в эту очередь с отсрочкой.
void clear()
Атомарно удаляет все элементы из этой очереди с отсрочкой.
int drainTo(Collection<? super E> c)
Удаляет все доступные элементы из этой очереди и добавляет их в заданную коллекцию.
int drainTo(Collection<? super E> c, int maxElements)
Удаляет не более заданного числа доступных элементов из этой очереди и добавляет их в заданную коллекцию.
Iterator<E> iterator()
Возвращает итератор по всем элементам (как истекшим, так и неистекшим) в этой очереди.
boolean offer(E e)
Вставляет указанный элемент в эту очередь с отсрочкой.
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()
Всегда возвращает Integer.MAX_VALUE потому что очередь с отсрочкой не ограничена по емкости.
boolean remove(Object o)
Удаляет один экземпляр указанного элемента из очереди, если он присутствует, независимо от того, истекла ли его отсрочка.
int size()
Возвращает количество элементов в этой коллекции.
E take()
Возвращает и удаляет голову этой очереди, ожидая, если необходимо, пока в очереди появится элемент с истекшей отсрочкой.
Object[] toArray()
Возвращает массив, содержащий все элементы этой очереди.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой очереди; тип возвращаемого массива совпадает со специфицированным массивом.

Методы, унаследованные от класса java.util.AbstractQueue

addAll, element, remove

Методы, унаследованные от класса java.util.AbstractCollection

contains, containsAll, isEmpty, removeAll, retainAll, toString

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, унаследованные от интерфейса java.util.concurrent.BlockingQueue

contains

Методы, унаследованные от интерфейса java.util.Collection

addAll, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray

Методы, унаследованные от интерфейса java.lang.Iterable

forEach

Методы, унаследованные от интерфейса java.util.Queue

element, remove

Подробное описание конструкторов

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 если в очереди нет элементов с истекшим сроком ожидания.
Определено в:
poll в интерфейсе Queue<E extends Delayed>
Возвращает:
голову очереди или 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 - если поток прерван во время ожидания

peek

public E peek()
Извлекает, но не удаляет, голову очереди или возвращает null если очередь пуста. В отличие от poll, если в очереди нет элементов с истекшим сроком ожидания, этот метод возвращает элемент, который истечёт следующим, если такой существует.
Определено в:
peek в интерфейсе Queue<E extends Delayed>
Возвращает:
голову очереди или null если очередь пуста

size

public int size()
Описание скопировано из интерфейса: Collection
Возвращает количество элементов в этой коллекции. Если эта коллекция содержит более Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.
Определено в:
size в интерфейсе Collection<E extends Delayed>
Возвращает:
количество элементов в этой коллекции

drainTo

public int drainTo(Collection<? super E> c)
Описание скопировано из интерфейса: BlockingQueue
Удаляет все доступные элементы из этой очереди и добавляет их в заданную коллекцию. Эта операция может быть более эффективной, чем многократное вызов poll() для этой очереди. Ошибка, возникшая при попытке добавить элементы в коллекцию c, может привести к тому, что элементы будут находиться ни в одной, ни в той, ни в другой, ни в обеих коллекциях, когда будет брошено связанное исключение. Попытки слить очередь в неё же приводят к IllegalArgumentException. Кроме того, поведение этой операции не определено, если заданная коллекция изменяется во время выполнения операции.
Определено в:
drainTo в интерфейсе BlockingQueue<E extends Delayed>
Параметры:
c - коллекция, в которую будут перенесены элементы
Возвращает:
количество перенесённых элементов
Исключения:
UnsupportedOperationException - если добавление элементов не поддерживается заданной коллекцией
ClassCastException - если класс элемента этой очереди не позволяет добавить его в заданную коллекцию
NullPointerException - если заданная коллекция равна null
IllegalArgumentException - если заданная коллекция является этой очередью, или некоторые свойства элемента этой очереди не позволяют добавить его в заданную коллекцию

drainTo

public int drainTo(Collection<? super E> c, int maxElements)
Описание скопировано из интерфейса: BlockingQueue
Удаляет не более указанного количества доступных элементов из этой очереди и добавляет их в заданную коллекцию. Ошибка, возникшая при попытке добавить элементы в коллекцию c, может привести к тому, что элементы будут находиться ни в одной, ни в той, ни в другой, ни в обеих коллекциях, когда будет брошено связанное исключение. Попытки слить очередь в неё же приводят к 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 , так как очередь с отложенным выполнением не ограничена по размеру.
Определено в:
remainingCapacity в интерфейсе BlockingQueue<E extends Delayed>
Возвращает:
Integer.MAX_VALUE

toArray

public Object[] toArray()
Возвращает массив, содержащий все элементы в этой очереди. Элементы возвращаемого массива не упорядочены каким-либо определенным образом.

Возвращаемый массив будет «безопасным» в том смысле, что к нему не сохраняются ссылки из этой очереди. (Иными словами, этот метод должен выделить новый массив). Таким образом, вызывающий метод свободен изменять возвращаемый массив.

Этот метод служит мостом между основанными на массивах и основанными на коллекциях API.

Указано в:
toArray в интерфейсе Collection<E extends Delayed>
Переопределяет:
toArray в классе AbstractCollection<E extends Delayed>
Возвращает:
массив, содержащий все элементы в этой очереди

toArray

public <T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы в этой очереди; тип возвращаемого массива — тип указанного массива. Элементы возвращаемого массива не упорядочены каким-либо определенным образом. Если очередь помещается в указанный массив, он возвращается в нём. В противном случае выделяется новый массив с типом выполнения указанного массива и размером этой очереди.

Если эта очередь помещается в указанный массив с избыточным пространством (т. е. массив имеет больше элементов, чем эта очередь), элемент в массиве сразу после конца очереди устанавливается в значение null.

Как и метод toArray(), этот метод служит мостом между основанными на массивах и основанными на коллекциях 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()
Возвращает итератор по всем элементам (как истекшим, так и не истекшим) в этой очереди. Итератор не возвращает элементы в каком-либо определённом порядке.

Возвращаемый итератор является слабо согласованным.

Указано в:
iterator в интерфейсе Collection<E extends Delayed>
Указано в:
iterator в интерфейсе Iterable<E extends Delayed>
Указано в:
iterator в классе AbstractCollection<E extends Delayed>
Возвращает:
итератор по элементам в этой очереди

© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/DelayQueue.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API