Интерфейс Queue<E>
- Параметры типа:
E- тип элементов, хранящихся в очереди
- Все суперинтерфейсы:
-
Collection<E>,Iterable<E>
- Все известные подинтерфейсы:
-
BlockingDeque<E>,BlockingQueue<E>,Deque<E>,TransferQueue<E>
- Все известные реализующие классы:
-
AbstractQueue,ArrayBlockingQueue,ArrayDeque,ConcurrentLinkedDeque,ConcurrentLinkedQueue,DelayQueue,LinkedBlockingDeque,LinkedBlockingQueue,LinkedList,LinkedTransferQueue,PriorityBlockingQueue,PriorityQueue,SynchronousQueue
public interface Queue<E> extends Collection<E>
Collection, очереди предоставляют дополнительные операции вставки, извлечения и проверки. Каждая из этих операций существует в двух формах: одна выбрасывает исключение, если операция завершается неудачно, другая возвращает специальное значение (либо null, либо false, в зависимости от операции). Последняя форма операции вставки разработана специально для использования с ограниченными по емкости Queue реализациями; в большинстве реализаций операции вставки не могут завершиться неудачно. | Выбрасывает исключение | Возвращает специальное значение | |
|---|---|---|
| Вставка | add(e) | offer(e) |
| Удаление | remove() | poll() |
| Просмотр | element() | peek() |
Очереди обычно, но не обязательно, упорядочивают элементы в порядке FIFO (первым вошел — первым вышел). Среди исключений — очереди с приоритетом, которые упорядочивают элементы в соответствии с предоставленным компаратором или естественным порядком элементов, и очереди LIFO (или стеки), которые упорядочивают элементы в порядке LIFO (последним вошел — первым вышел). Какой бы порядок ни использовался, голова очереди — это тот элемент, который был бы удален вызовом remove() или poll(). В очереди FIFO все новые элементы вставляются в хвост очереди. Другие типы очередей могут использовать другие правила размещения. Каждая Queue реализация должна указывать свои свойства упорядочения.
Метод offer вставляет элемент, если это возможно, в противном случае возвращает false. Это отличается от метода Collection.add, который может не добавить элемент, только выбросив необработанное исключение. Метод offer предназначен для использования в тех случаях, когда ошибка является нормальным, а не исключительным событием, например, в очередях с фиксированной емкостью (или «ограниченной» емкостью).
Методы remove() и poll() удаляют и возвращают голову очереди. Точно какой элемент удаляется из очереди — это функция политики упорядочения очереди, которая различается в разных реализациях. Методы remove() и poll() отличаются только своим поведением при пустой очереди: метод remove() выбрасывает исключение, а метод poll() возвращает null.
Методы element() и peek() возвращают, но не удаляют, голову очереди.
Интерфейс Queue не определяет блокирующие методы очереди, которые распространены в многопоточной программировании. Эти методы, которые ожидают появления элементов или освобождения места, определены в интерфейсе BlockingQueue, который расширяет этот интерфейс.
Queue реализации обычно не допускают вставки null элементов, хотя некоторые реализации, такие как LinkedList, не запрещают вставки null. Даже в тех реализациях, которые это позволяют, null не следует вставлять в Queue, поскольку null также используется как специальное возвращаемое значение методом poll для обозначения того, что очередь не содержит элементов.
Queue реализации обычно не определяют элемент-ориентированные версии методов equals и hashCode, а вместо этого наследуют идентификационные версии от класса Object, потому что элемент-ориентированное равенство не всегда определено для очередей с одинаковыми элементами, но разными свойствами упорядочения.
Этот интерфейс является членом Java Collections Framework.
- С момента:
- 1.5
Сводка методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
add |
Вставляет указанный элемент в эту очередь, если это возможно сделать немедленно без нарушения ограничений по емкости, возвращает true при успехе и выбрасывает IllegalStateException, если в настоящее время нет места. |
E |
element() |
Возвращает, но не удаляет, голову этой очереди. |
boolean |
offer |
Вставляет указанный элемент в эту очередь, если это возможно сделать немедленно без нарушения ограничений по емкости. |
E |
peek() |
Возвращает, но не удаляет, голову этой очереди или возвращает null, если эта очередь пуста. |
E |
poll() |
Возвращает и удаляет голову этой очереди или возвращает null, если эта очередь пуста. |
E |
remove() |
Возвращает и удаляет голову этой очереди. |
Методы, объявленные в интерфейсе java.util.Collection
addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray
Подробное описание методов
add
boolean add(E e)
true при успехе и выбрасывая IllegalStateException, если в настоящее время нет места.- Определено в:
-
addв интерфейсеCollection<E> - Параметры:
-
e- добавляемый элемент - Возвращает:
-
true(как указано вCollection.add(E)) - Исключения:
-
IllegalStateException- если элемент не может быть добавлен в данный момент из-за ограничений по емкости -
ClassCastException- если класс указанного элемента препятствует его добавлению в эту очередь -
NullPointerException- если указанный элемент равен null, и эта очередь не допускает null-элементов -
IllegalArgumentException- если какое-либо свойство этого элемента препятствует его добавлению в эту очередь
offer
boolean offer(E e)
add(E), который может не вставить элемент только путем выброса исключения.- Параметры:
-
e- добавляемый элемент - Возвращает:
-
true, если элемент был добавлен в эту очередь, иначеfalse - Исключения:
-
ClassCastException- если класс указанного элемента препятствует его добавлению в эту очередь -
NullPointerException- если указанный элемент равен null, и эта очередь не допускает null-элементов -
IllegalArgumentException- если какое-либо свойство этого элемента препятствует его добавлению в эту очередь
remove
E remove()
poll() только тем, что выбрасывает исключение, если эта очередь пуста.- Возвращает:
- голова этой очереди
- Исключения:
-
NoSuchElementException- если эта очередь пуста
poll
E poll()
null, если эта очередь пуста.- Возвращает:
- голова этой очереди или
null, если эта очередь пуста
element
E element()
peek только тем, что выбрасывает исключение, если эта очередь пуста.- Возвращает:
- голова этой очереди
- Исключения:
-
NoSuchElementException- если эта очередь пуста
peek
E peek()
null, если эта очередь пуста.- Возвращает:
- голова этой очереди или
null, если эта очередь пуста
© 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/Queue.html