Spec-Zone.ru › OpenJDK 27

Интерфейс 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, ограниченными по ёмкости; в большинстве реализаций операции вставки не могут завершиться неудачно.
Краткое описание методов 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.

С версии:
1.5

Краткое описание методов

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в эту очередь, если это можно сделать немедленно, не нарушая ограничений по ёмкости; при успехе возвращает true, а если свободного места в данный момент нет, выбрасывает IllegalStateException.
E element()
Получает голову этой очереди, не удаляя её.
boolean offer(E e)
Вставляет указанный элемент в эту очередь, если это можно сделать немедленно, не нарушая ограничений по ёмкости.
E peek()
Получает голову этой очереди, не удаляя её, или возвращает null, если очередь пуста.
E poll()
Получает и удаляет голову этой очереди или возвращает null, если очередь пуста.
E remove()
Получает и удаляет голову этой очереди.

Методы, объявленные в интерфейсе Collection

addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray
Модификатор и тип Метод Описание
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в эту коллекцию (необязательная операция).
void clear()
Удаляет все элементы из этой коллекции (необязательная операция).
boolean contains(Object o)
Возвращает true, если эта коллекция содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
boolean equals(Object o)
Сравнивает указанный объект с этой коллекцией на равенство.
int hashCode()
Возвращает значение хеш-кода этой коллекции.
boolean isEmpty()
Возвращает true, если эта коллекция не содержит элементов.
Iterator<E> iterator()
Возвращает итератор по элементам этой коллекции.
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream с этой коллекцией в качестве источника.
boolean remove(Object o)
Удаляет один экземпляр указанного элемента из этой коллекции, если он присутствует (необязательная операция).
boolean removeAll(Collection<?> c)
Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательная операция).
default boolean removeIf(Predicate<? super E> filter)
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет только те элементы этой коллекции, которые содержатся в указанной коллекции (необязательная операция).
int size()
Возвращает количество элементов в этой коллекции.
default Spliterator<E> spliterator()
Создаёт Spliterator для элементов этой коллекции.
default Stream<E> stream()
Возвращает последовательный Stream с этой коллекцией в качестве источника.
Object[] toArray()
Возвращает массив, содержащий все элементы этой коллекции.
default <T> T[] toArray(IntFunction<T[]> generator)
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой коллекции; тип массива во время выполнения совпадает с типом указанного массива.

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

forEach
Модификатор и тип Метод Описание
default void forEach(Consumer<? super E> action)
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не выбросит исключение.

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

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, если очередь пуста

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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