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