Класс 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() будет блокирован, ожидая истечения времени ожидания этого элемента.
В этой очереди не допускаются нулевые элементы.
Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator. Итератор, предоставленный в методе iterator(), не гарантируется, что будет проходить по элементам DelayQueue в определенном порядке.
Этот класс является членом набора коллекций Java.
- С:
- 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
Подробное описание методов
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. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время выполнения операции.- Specified by:
-
drainToв интерфейсеBlockingQueue<E extends Delayed> - Parameters:
-
c- коллекция для перевода элементов -
maxElements- максимальное количество передаваемых элементов - Returns:
- количество переданных элементов
- Throws:
-
UnsupportedOperationException- если добавление элементов не поддерживается заданной коллекцией -
ClassCastException- если класс элемента этой очереди препятствует его добавлению в указанную коллекцию -
NullPointerException- если заданная коллекция равна null -
IllegalArgumentException- если заданная коллекция является этой очередью или какое-то свойство элемента этой очереди препятствует его добавлению в указанную коллекцию
clear
public void clear()
- Specified by:
-
clearв интерфейсеCollection<E extends Delayed> - Overrides:
-
clearв классеAbstractQueue<E extends Delayed>
remainingCapacity
public int remainingCapacity()
Integer.MAX_VALUE, потому что DelayQueue не ограничена по емкости.- Specified by:
-
remainingCapacityв интерфейсеBlockingQueue<E extends Delayed> - Returns:
Integer.MAX_VALUE
toArray
public Object[] toArray()
Возвращаемый массив будет «безопасным» в том смысле, что к нему не сохраняются ссылки этой очередью. (Иными словами, этот метод должен выделить новый массив). Таким образом, вызывающая сторона свободна изменять возвращаемый массив.
Этот метод служит мостом между массивоориентированными и коллекционно-ориентированными API.
- Specified by:
-
toArrayв интерфейсеCollection<E extends Delayed> - Overrides:
-
toArrayв классеAbstractCollection<E extends Delayed> - Returns:
- массив, содержащий все элементы в этой очереди
toArray
public <T> T[] toArray(T[] a)
Если эта очередь помещается в указанный массив с избыточными местами (т. е. массив имеет больше элементов, чем эта очередь), элемент в массиве непосредственно после конца очереди устанавливается в null.
Как и метод toArray(), этот метод служит мостом между массивоориентированными и коллекционно-ориентированными API. Кроме того, этот метод позволяет точно контролировать тип времени выполнения выходного массива и, при определенных обстоятельствах, может использоваться для экономии затрат на выделение памяти.
Следующий код можно использовать для выгрузки очереди задержки в новый выделенный массив Delayed:
Delayed[] a = q.toArray(new Delayed[0]); Обратите внимание, что toArray(new Object[0]) идентичен по функции toArray().- Specified by:
-
toArrayв интерфейсеCollection<E extends Delayed> - Overrides:
-
toArrayв классеAbstractCollection<E extends Delayed> - Type Parameters:
T- тип компонента массива для хранения коллекции- Parameters:
-
a- массив, в который должны быть сохранены элементы очереди, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа времени выполнения - Returns:
- массив, содержащий все элементы в этой очереди
- Throws:
-
ArrayStoreException- если тип времени выполнения указанного массива не является надтипом типа времени выполнения каждого элемента в этой очереди -
NullPointerException- если указанный массив равен null
remove
public boolean remove(Object o)
- Specified by:
-
removeв интерфейсеBlockingQueue<E extends Delayed> - Specified by:
-
removeв интерфейсеCollection<E extends Delayed> - Overrides:
-
removeв классеAbstractCollection<E extends Delayed> - Parameters:
-
o- элемент, который нужно удалить из этой коллекции, если он присутствует - Returns:
-
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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/DelayQueue.html