Spec-Zone.ru › OpenJDK 25

Интерфейс 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 Collections Framework.

С версии:
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

Методы, объявленные в интерфейсе 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, если очередь пуста

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Queue.html

Spec-Zone.ru

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