Spec-Zone.ru › OpenJDK 17

Интерфейс 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(E e)
Вставляет указанный элемент в эту очередь, если это возможно сделать немедленно без нарушения ограничений на емкость, возвращает true при успехе и бросает IllegalStateException в случае отсутствия места.
E element()
Возвращает голову этой очереди, но не удаляет её.
boolean offer(E e)
Вставляет указанный элемент в эту очередь, если это возможно сделать немедленно без нарушения ограничений на емкость.
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

Методы, объявленные в интерфейсе java.lang.Iterable

forEach

Подробное описание методов

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API