Класс 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() может вернуть (не-null) голову даже когда take() заблокирует ожидание истечения задержки этого элемента.
Эта очередь не допускает нулевых элементов.
Этот класс и его итератор реализуют все необязательные методы интерфейсов 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 |
Возвращает массив, содержащий все элементы в этой очереди; тип возвращаемого массива совпадает с типом заданного массива. |
Методы, объявленные в классе java.util.AbstractQueue
addAll, element
Методы, объявленные в классе 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
Подробное описание конструкторов
DelayQueue
public DelayQueue()
DelayQueue, который изначально пуст.DelayQueue
public DelayQueue(Collection<? extends E> c)
DelayQueue, изначально содержащий элементы заданного набора экземпляров Delayed.- Параметры:
-
c- набор элементов, которые должны содержаться изначально - Исключения:
-
NullPointerException- если заданный набор или любой из его элементов равны null
Подробное описание методов
добавить
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
предложить
public boolean offer(E e)
- Унаследованно от:
-
offerв интерфейсеBlockingQueue<E extends Delayed> - Унаследованно от:
-
offerв интерфейсеQueue<E extends Delayed> - Параметры:
-
e- элемент для добавления - Возвращает:
true- Исключения:
-
NullPointerException- если указанный элемент равен null
поместить
public void put(E e)
- Унаследованно от:
-
putв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
e- элемент для добавления - Исключения:
-
NullPointerException- если указанный элемент равен null
предложить
public boolean offer(E e, long timeout, TimeUnit unit)
- Унаследованно от:
-
offerв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
e- элемент для добавления -
timeout- Этот параметр игнорируется, так как метод никогда не блокируется -
unit- Этот параметр игнорируется, так как метод никогда не блокируется - Возвращает:
true- Исключения:
-
NullPointerException- если указанный элемент равен null
получить и удалить
public E poll()
null если в этой очереди нет элементов.- Унаследованно от:
-
pollв интерфейсеQueue<E extends Delayed> - Возвращает:
- голову этой очереди, или
nullесли в этой очереди нет элементов с истекшим сроком ожидания
взять
public E take() throws InterruptedException
- Унаследованно от:
-
takeв интерфейсеBlockingQueue<E extends Delayed> - Возвращает:
- голово этой очереди
- Исключения:
-
InterruptedException- если прервано ожидание
получить и удалить
public E poll(long timeout, TimeUnit unit) throws InterruptedException
- Унаследованно от:
-
pollв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
timeout- время ожидания, прежде чем отказаться, в единицахunit -
unit-TimeUnitопределяющее, как интерпретировать параметрtimeout - Возвращает:
- голово этой очереди, или
nullесли заданное время ожидания истекло, прежде чем появился элемент с истекшим сроком ожидания - Исключения:
-
InterruptedException- если прервано ожидание
удалить
public E remove()
- Унаследованно от:
-
removeв интерфейсеQueue<E extends Delayed> - Переопределяет:
-
removeв классеAbstractQueue<E extends Delayed> - Возвращает:
- голово этой очереди
- Исключения:
-
NoSuchElementException- если в этой очереди нет элементов с истекшим сроком ожидания
получить
public E peek()
null если очередь пуста. В отличие от poll, если в очереди нет элементов с истекшим сроком ожидания, этот метод возвращает элемент, который истечёт следующим, если он существует.- Унаследованно от:
-
peekв интерфейсеQueue<E extends Delayed> - Возвращает:
- голову этой очереди, или
nullесли очередь пуста
размер
public int size()
CollectionInteger.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.- Унаследованно от:
-
sizeв интерфейсеCollection<E extends Delayed> - Возвращает:
- количество элементов в этом наборе
перегнать в
public int drainTo(Collection<? super E> c)
BlockingQueuec, может привести к тому, что элементы окажутся ни в одном, ни в одном, ни в том, ни в другом, ни в обоих наборах, когда будет выброшено соответствующее исключение. Попытки перегнать очередь в себя приводят к IllegalArgumentException. Кроме того, поведение этой операции не определено, если заданный набор изменяется во время выполнения операции.- Унаследованно от:
-
drainToв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
c- набор для перевода элементов - Возвращает:
- количество переданных элементов
- Исключения:
-
UnsupportedOperationException- если добавление элементов не поддерживается заданным набором -
ClassCastException- если класс элемента этой очереди препятствует его добавлению в заданный набор -
NullPointerException- если заданный набор равен null -
IllegalArgumentException- если заданный набор является этой очередью или некоторые свойства элемента этой очереди препятствуют его добавлению в заданный набор
перегнать в
public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueuec, может привести к тому, что элементы окажутся ни в одном, ни в одном, ни в том, ни в другом, ни в обоих наборах, когда будет выброшено соответствующее исключение. Попытки перегнать очередь в себя приводят к IllegalArgumentException. Кроме того, поведение этой операции не определено, если заданный набор изменяется во время выполнения операции.- Унаследованно от:
-
drainToв интерфейсеBlockingQueue<E extends Delayed> - Параметры:
-
c- набор для перевода элементов -
maxElements- максимальное количество элементов для перевода - Возвращает:
- количество переданных элементов
- Исключения:
-
UnsupportedOperationException- если добавление элементов не поддерживается заданным набором -
ClassCastException- если класс элемента этой очереди препятствует его добавлению в заданный набор -
NullPointerException- если заданный набор равен null -
IllegalArgumentException- если заданный набор является этой очередью или некоторые свойства элемента этой очереди препятствуют его добавлению в заданный набор
очистить
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.
- Определено в:
-
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, 2023, 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/21/docs/api/java.base/java/util/concurrent/DelayQueue.html