Класс 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
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | AbstractQueue() | Конструктор для использования подклассами. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | add(E e) | Вставляет указанный элемент в эту очередь, если это возможно немедленно без нарушения ограничений по емкости, возвращая |
boolean | addAll(Collection<? extends E> c) | Добавляет все элементы из указанной коллекции в эту очередь. |
void | clear() | Удаляет все элементы из этой очереди. |
E | element() | Возвращает, но не удаляет, голову этой очереди. |
E | remove() | Возвращает и удаляет голову этой очереди. |
Методы, объявленные в классе java.util.AbstractCollection
contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, toArray, toArray, toStringМетоды, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitМетоды, объявленные в интерфейсе java.util.Collection
contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArrayМетоды, объявленные в интерфейсе java.lang.Iterable
forEachМетоды, объявленные в интерфейсе java.util.Queue
offer, peek, pollКонструкторы
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)
Добавляет все элементы из указанной коллекции в эту очередь. Попытки добавить все элементы из очереди в саму себя приводят к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время выполнения операции.
Эта реализация итерируется по указанной коллекции и добавляет каждый возвращаемый итератором элемент в эту очередь, по очереди. Исключение времени выполнения, возникающее при попытке добавить элемент (включая, в частности, null элемент), может привести к тому, что только некоторые элементы будут успешно добавлены, когда связанное исключение будет выброшено.
- Указано в:
-
addAllв интерфейсеCollection<E> - Переопределяет:
-
addAllв классеAbstractCollection<E> - Параметры:
-
c- коллекция, содержащая элементы, которые нужно добавить в эту очередь - Возвращает:
-
true, если эта очередь изменилась в результате вызова - Исключения:
-
ClassCastException- если класс элемента указанной коллекции не позволяет добавить его в эту очередь -
NullPointerException- если указанная коллекция содержит null-элемент, и эта очередь не допускает null-элементы, или если указанная коллекция равна null -
IllegalArgumentException- если какое-то свойство элемента указанной коллекции не позволяет добавить его в эту очередь, или если указанная коллекция — это сама эта очередь -
IllegalStateException- если не все элементы могут быть добавлены в данный момент из-за ограничений на вставку - См. также:
add(Object)
© 1993, 2020, 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/11/docs/api/java.base/java/util/AbstractQueue.html