Интерфейс 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, 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/Queue.html