Spec-Zone.ru › OpenJDK 27

Класс AbstractQueue<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
Параметры типа:
E
Все реализуемые интерфейсы:
Iterable<E>, Collection<E>, Queue<E>
Прямые известные подклассы:
ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedTransferQueue, PriorityBlockingQueue, PriorityQueue, SynchronousQueue
public abstract class AbstractQueue<E> extends AbstractCollection<E> implements Queue<E>
Этот класс предоставляет базовые реализации некоторых операций Queue. Реализации в этом классе подходят для случаев, когда базовая реализация не допускает элементы null. Методы add, remove и element основаны соответственно на методах offer, poll и peek, но вместо сообщения о неудаче с помощью возвращаемых значений false или null выбрасывают исключения.

Реализация Queue, расширяющая этот класс, должна как минимум определять метод Queue.offer(E), который не допускает вставки элементов null, а также методы Queue.peek(), Queue.poll(), Collection.size() и Collection.iterator(). Обычно переопределяются и дополнительные методы. Если выполнить эти требования невозможно, рассмотрите вместо этого возможность создания подкласса AbstractCollection.

Этот класс входит в состав Java Collections Framework.

Начиная с версии:
1.5

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

AbstractQueue()
Модификатор Конструктор Описание
protected
Конструктор для использования подклассами.

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

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в эту очередь, если это можно сделать немедленно, не нарушая ограничений по емкости; при успешном выполнении возвращает true, а если свободного места в данный момент нет, выбрасывает IllegalStateException.
boolean addAll(Collection<? extends E> c)
Добавляет в эту очередь все элементы указанной коллекции.
void clear()
Удаляет все элементы из этой очереди.
E element()
Получает, но не удаляет начало этой очереди.
E remove()
Получает и удаляет начало этой очереди.

Методы, объявленные в классе AbstractCollection

contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, toArray, toArray, toString
Модификатор и тип Метод Описание
boolean contains(Object o)
Возвращает true, если эта коллекция содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
boolean isEmpty()
Возвращает true, если коллекция не содержит элементов.
abstract Iterator<E> iterator()
Возвращает итератор по элементам этой коллекции.
boolean remove(Object o)
Удаляет один экземпляр указанного элемента из этой коллекции, если он присутствует (необязательная операция).
boolean removeAll(Collection<?> c)
Удаляет из этой коллекции все элементы, которые также содержатся в указанной коллекции (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет в этой коллекции только элементы, содержащиеся в указанной коллекции (необязательная операция).
Object[] toArray()
Возвращает массив, содержащий все элементы этой коллекции.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой коллекции; тип времени выполнения возвращаемого массива совпадает с типом указанного массива.
String toString()
Возвращает строковое представление этой коллекции.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения заданного промежутка реального времени.

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

equals, hashCode, parallelStream, removeIf, size, spliterator, stream, toArray
Модификатор и тип Метод Описание
boolean equals(Object o)
Сравнивает указанный объект с этой коллекцией на равенство.
int hashCode()
Возвращает значение хеш-кода этой коллекции.
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция.
default boolean removeIf(Predicate<? super E> filter)
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательная операция).
int size()
Возвращает количество элементов в этой коллекции.
default Spliterator<E> spliterator()
Создает Spliterator для элементов этой коллекции.
default Stream<E> stream()
Возвращает последовательный Stream, источником которого является эта коллекция.
default <T> T[] toArray(IntFunction<T[]> generator)
Возвращает массив, содержащий все элементы этой коллекции; для создания возвращаемого массива используется предоставленная функция generator.

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

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

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

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

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

AbstractQueue

protected AbstractQueue()
Конструктор для использования подклассами.

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

add

public boolean add(E e)
Вставляет указанный элемент в эту очередь, если это можно сделать немедленно, не нарушая ограничений по емкости; при успешном выполнении возвращает true, а если свободного места в данный момент нет, выбрасывает IllegalStateException.

Эта реализация возвращает true, если offer выполняется успешно, иначе выбрасывает IllegalStateException.

Указано в:
add в интерфейсе Collection<E>
Указано в:
add в интерфейсе Queue<E>
Переопределяет:
add в классе AbstractCollection<E>
Параметры:
e — добавляемый элемент
Возвращает:
true (как указано в Collection.add(E))
Выбрасывает:
IllegalStateException — если элемент не может быть добавлен в данный момент из-за ограничений по емкости
ClassCastException — если класс указанного элемента препятствует его добавлению в эту очередь
NullPointerException — если указанный элемент равен null, а эта очередь не допускает элементы null
IllegalArgumentException — если какое-либо свойство этого элемента препятствует его добавлению в эту очередь

remove

public E remove()
Получает и удаляет начало этой очереди. Этот метод отличается от poll только тем, что выбрасывает исключение, если очередь пуста.

Эта реализация возвращает результат poll, если очередь не пуста.

Указано в:
remove в интерфейсе Queue<E>
Возвращает:
начало этой очереди
Выбрасывает:
NoSuchElementException — если очередь пуста

element

public E element()
Получает, но не удаляет начало этой очереди. Этот метод отличается от peek только тем, что выбрасывает исключение, если очередь пуста.

Эта реализация возвращает результат peek, если очередь не пуста.

Указано в:
element в интерфейсе Queue<E>
Возвращает:
начало этой очереди
Выбрасывает:
NoSuchElementException — если очередь пуста

clear

public void clear()
Удаляет все элементы из этой очереди. После возврата из этого вызова очередь будет пуста.

Эта реализация многократно вызывает poll, пока метод не вернет null.

Указано в:
clear в интерфейсе Collection<E>
Переопределяет:
clear в классе AbstractCollection<E>

addAll

public boolean addAll(Collection<? extends E> c)
Добавляет в эту очередь все элементы указанной коллекции. Попытка добавить очередь в саму себя с помощью addAll приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время выполнения операции.

Эта реализация перебирает указанную коллекцию и поочередно добавляет в эту очередь каждый элемент, возвращаемый итератором. Если при попытке добавить элемент возникает исключение времени выполнения (в частности, элемент null), к моменту выбрасывания соответствующего исключения может быть успешно добавлена только часть элементов.

Указано в:
addAll в интерфейсе Collection<E>
Переопределяет:
addAll в классе AbstractCollection<E>
Параметры:
c — коллекция, содержащая элементы для добавления в эту очередь
Возвращает:
true, если в результате вызова эта очередь изменилась
Выбрасывает:
ClassCastException — если класс элемента указанной коллекции препятствует его добавлению в эту очередь
NullPointerException — если указанная коллекция содержит элемент null, а эта очередь не допускает элементы null, или если указанная коллекция равна null
IllegalArgumentException — если какое-либо свойство элемента указанной коллекции препятствует его добавлению в эту очередь или если указанная коллекция является этой очередью
IllegalStateException — если в данный момент невозможно добавить все элементы из-за ограничений на вставку
См. также:
  • add(Object)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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