Spec-Zone.ru › OpenJDK 27

Интерфейс Deque<E>

Параметры типа:
E - тип элементов, хранящихся в этом деке
Все суперинтерфейсы:
Collection<E>, Iterable<E>, Queue<E>, SequencedCollection<E>
Все известные подинтерфейсы:
BlockingDeque<E>
Все известные классы-реализации:
ArrayDeque, ConcurrentLinkedDeque, LinkedBlockingDeque, LinkedList
public interface Deque<E> extends Queue<E>, SequencedCollection<E>
Линейная коллекция, поддерживающая вставку и удаление элементов с обоих концов. Название deque — сокращение от «double ended queue» («двусторонняя очередь»); обычно оно произносится как «дек». Большинство реализаций Deque не устанавливают фиксированных ограничений на количество содержащихся в них элементов, однако этот интерфейс поддерживает как деки с ограниченной емкостью, так и деки без фиксированного ограничения размера.

Этот интерфейс определяет методы доступа к элементам с обоих концов дека. Предусмотрены методы для вставки, удаления и просмотра элемента. Каждый из этих методов существует в двух формах: одна выбрасывает исключение при неудачном выполнении операции, другая возвращает специальное значение (либо null, либо false — в зависимости от операции). Последняя форма операции вставки предназначена специально для использования с реализациями Deque с ограниченной емкостью; в большинстве реализаций операции вставки не могут завершиться неудачей.

Двенадцать описанных выше методов представлены в следующей таблице:

Сводка методов Deque
Первый элемент (голова) Последний элемент (хвост)
Выбрасывает исключение Специальное значение Выбрасывает исключение Специальное значение
Вставка addFirst(e) offerFirst(e) addLast(e) offerLast(e)
Удаление removeFirst() pollFirst() removeLast() pollLast()
Просмотр getFirst() peekFirst() getLast() peekLast()

Этот интерфейс расширяет интерфейс Queue. При использовании дека в качестве очереди реализуется поведение FIFO (первым вошел — первым вышел). Элементы добавляются в конец дека и удаляются из его начала. Методы, унаследованные от интерфейса Queue, полностью эквивалентны методам Deque, как показано в следующей таблице:

Сравнение методов Queue и Deque
Метод Queue Эквивалентный метод Deque
add(e) addLast(e)
offer(e) offerLast(e)
remove() removeFirst()
poll() pollFirst()
element() getFirst()
peek() peekFirst()

Деки также можно использовать в качестве стеков LIFO (последним вошел — первым вышел). Этот интерфейс предпочтительнее устаревшего класса Stack. При использовании дека в качестве стека элементы добавляются и извлекаются из начала дека. Методы стека эквивалентны методам Deque, как показано в таблице ниже:

Сравнение методов Stack и Deque
Метод Stack Эквивалентный метод Deque
push(e) addFirst(e)
pop() removeFirst()
peek() peekFirst()

Обратите внимание, что метод peek одинаково хорошо работает как при использовании дека в качестве очереди, так и при использовании его в качестве стека; в обоих случаях элементы извлекаются из начала дека.

Этот интерфейс предоставляет два метода для удаления элементов из середины дека: removeFirstOccurrence и removeLastOccurrence.

В отличие от интерфейса List, этот интерфейс не поддерживает индексированный доступ к элементам.

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

Реализации Deque обычно не определяют версии методов equals и hashCode, учитывающие элементы, а наследуют версии, основанные на идентичности объектов, из класса Object.

Этот интерфейс входит в состав Java Collections Framework.

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

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

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в очередь, представленную этим деком (то есть в конец дека), если это можно сделать немедленно, не нарушая ограничений емкости; при успехе возвращает true, а если в данный момент места нет — выбрасывает IllegalStateException.
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в конец этого дека, как если бы для каждого из них вызывался метод addLast(E), в порядке их получения из итератора коллекции.
void addFirst(E e)
Вставляет указанный элемент в начало этого дека, если это можно сделать немедленно, не нарушая ограничений емкости; если в данный момент места нет, выбрасывает IllegalStateException.
void addLast(E e)
Вставляет указанный элемент в конец этого дека, если это можно сделать немедленно, не нарушая ограничений емкости; если в данный момент места нет, выбрасывает IllegalStateException.
boolean contains(Object o)
Возвращает true, если этот дек содержит указанный элемент.
Iterator<E> descendingIterator()
Возвращает итератор по элементам этого дека в обратном порядке.
E element()
Получает, но не удаляет голову очереди, представленной этим деком (то есть первый элемент этого дека).
E getFirst()
Получает, но не удаляет первый элемент этого дека.
E getLast()
Получает, но не удаляет последний элемент этого дека.
Iterator<E> iterator()
Возвращает итератор по элементам этого дека в обычном порядке.
boolean offer(E e)
Вставляет указанный элемент в очередь, представленную этим деком (то есть в конец дека), если это можно сделать немедленно, не нарушая ограничений емкости; при успехе возвращает true, а если в данный момент места нет — false.
boolean offerFirst(E e)
Вставляет указанный элемент в начало этого дека, если это не нарушает ограничения емкости.
boolean offerLast(E e)
Вставляет указанный элемент в конец этого дека, если это не нарушает ограничения емкости.
E peek()
Получает, но не удаляет голову очереди, представленной этим деком (то есть первый элемент этого дека), или возвращает null, если дек пуст.
E peekFirst()
Получает, но не удаляет первый элемент этого дека или возвращает null, если дек пуст.
E peekLast()
Получает, но не удаляет последний элемент этого дека или возвращает null, если дек пуст.
E poll()
Получает и удаляет голову очереди, представленной этим деком (то есть первый элемент этого дека), или возвращает null, если дек пуст.
E pollFirst()
Получает и удаляет первый элемент этого дека или возвращает null, если дек пуст.
E pollLast()
Получает и удаляет последний элемент этого дека или возвращает null, если дек пуст.
E pop()
Извлекает элемент из стека, представленного этим деком.
void push(E e)
Добавляет элемент в стек, представленный этим деком (то есть в начало дека), если это можно сделать немедленно, не нарушая ограничений емкости; если в данный момент места нет, выбрасывает IllegalStateException.
E remove()
Получает и удаляет голову очереди, представленной этим деком (то есть первый элемент этого дека).
boolean remove(Object o)
Удаляет первое вхождение указанного элемента из этого дека.
E removeFirst()
Получает и удаляет первый элемент этого дека.
boolean removeFirstOccurrence(Object o)
Удаляет первое вхождение указанного элемента из этого дека.
E removeLast()
Получает и удаляет последний элемент этого дека.
boolean removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента из этого дека.
default Deque<E> reversed()
Возвращает представление этой коллекции в обратном порядке.
int size()
Возвращает количество элементов в этом деке.

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

clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArray, toArray
Модификатор и тип Метод Описание
void clear()
Удаляет все элементы из этой коллекции (необязательная операция).
boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
boolean equals(Object o)
Сравнивает указанный объект с этой коллекцией на равенство.
int hashCode()
Возвращает значение хеш-кода этой коллекции.
boolean isEmpty()
Возвращает true, если эта коллекция не содержит элементов.
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция.
boolean removeAll(Collection<?> c)
Удаляет из этой коллекции все ее элементы, которые также содержатся в указанной коллекции (необязательная операция).
default boolean removeIf(Predicate<? super E> filter)
Удаляет из этой коллекции все элементы, удовлетворяющие заданному предикату (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет в этой коллекции только элементы, содержащиеся в указанной коллекции (необязательная операция).
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, пока не будут обработаны все элементы или действие не выбросит исключение.

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

addFirst

void addFirst(E e)
Вставляет указанный элемент в начало этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений по вместимости; если свободного места нет, выбрасывает IllegalStateException. При использовании двусторонней очереди с ограниченной вместимостью обычно предпочтительнее использовать метод offerFirst(E).
Указано в:
addFirst в интерфейсе SequencedCollection<E>
Параметры:
e — добавляемый элемент
Исключения:
IllegalStateException — если элемент нельзя добавить в данный момент из-за ограничений по вместимости
ClassCastException — если класс указанного элемента препятствует его добавлению в эту двустороннюю очередь
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null
IllegalArgumentException — если какое-либо свойство указанного элемента препятствует его добавлению в эту двустороннюю очередь

addLast

void addLast(E e)
Вставляет указанный элемент в конец этой двусторонней очереди, если это можно сделать немедленно, не нарушая ограничений по вместимости; если свободного места нет, выбрасывает IllegalStateException. При использовании двусторонней очереди с ограниченной вместимостью обычно предпочтительнее использовать метод offerLast(E).

Этот метод эквивалентен add(E).

Указано в:
addLast в интерфейсе SequencedCollection<E>
Параметры:
e — добавляемый элемент
Исключения:
IllegalStateException — если элемент нельзя добавить в данный момент из-за ограничений по вместимости
ClassCastException — если класс указанного элемента препятствует его добавлению в эту двустороннюю очередь
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null
IllegalArgumentException — если какое-либо свойство указанного элемента препятствует его добавлению в эту двустороннюю очередь

offerFirst

boolean offerFirst(E e)
Вставляет указанный элемент в начало этой двусторонней очереди, если это не нарушает ограничений по вместимости. При использовании двусторонней очереди с ограниченной вместимостью этот метод обычно предпочтительнее метода addFirst(E), который может не вставить элемент только в случае выбрасывания исключения.
Параметры:
e — добавляемый элемент
Возвращает:
true, если элемент был добавлен в эту двустороннюю очередь, иначе false
Исключения:
ClassCastException — если класс указанного элемента препятствует его добавлению в эту двустороннюю очередь
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null
IllegalArgumentException — если какое-либо свойство указанного элемента препятствует его добавлению в эту двустороннюю очередь

offerLast

boolean offerLast(E e)
Вставляет указанный элемент в конец этой двусторонней очереди, если это не нарушает ограничений по вместимости. При использовании двусторонней очереди с ограниченной вместимостью этот метод обычно предпочтительнее метода addLast(E), который может не вставить элемент только в случае выбрасывания исключения.
Параметры:
e — добавляемый элемент
Возвращает:
true, если элемент был добавлен в эту двустороннюю очередь, иначе false
Исключения:
ClassCastException — если класс указанного элемента препятствует его добавлению в эту двустороннюю очередь
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null
IllegalArgumentException — если какое-либо свойство указанного элемента препятствует его добавлению в эту двустороннюю очередь

removeFirst

E removeFirst()
Извлекает и удаляет первый элемент этой двусторонней очереди. Этот метод отличается от pollFirst только тем, что выбрасывает исключение, если эта двусторонняя очередь пуста.
Указано в:
removeFirst в интерфейсе SequencedCollection<E>
Возвращает:
голову этой двусторонней очереди
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

removeLast

E removeLast()
Извлекает и удаляет последний элемент этой двусторонней очереди. Этот метод отличается от pollLast только тем, что выбрасывает исключение, если эта двусторонняя очередь пуста.
Указано в:
removeLast в интерфейсе SequencedCollection<E>
Возвращает:
хвост этой двусторонней очереди
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

pollFirst

E pollFirst()
Извлекает и удаляет первый элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста.
Возвращает:
голову этой двусторонней очереди или null, если эта двусторонняя очередь пуста

pollLast

E pollLast()
Извлекает и удаляет последний элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста.
Возвращает:
хвост этой двусторонней очереди или null, если эта двусторонняя очередь пуста

getFirst

E getFirst()
Извлекает, но не удаляет первый элемент этой двусторонней очереди. Этот метод отличается от peekFirst только тем, что выбрасывает исключение, если эта двусторонняя очередь пуста.
Указано в:
getFirst в интерфейсе SequencedCollection<E>
Возвращает:
голову этой двусторонней очереди
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

getLast

E getLast()
Извлекает, но не удаляет последний элемент этой двусторонней очереди. Этот метод отличается от peekLast только тем, что выбрасывает исключение, если эта двусторонняя очередь пуста.
Указано в:
getLast в интерфейсе SequencedCollection<E>
Возвращает:
хвост этой двусторонней очереди
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

peekFirst

E peekFirst()
Извлекает, но не удаляет первый элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста.
Возвращает:
голову этой двусторонней очереди или null, если эта двусторонняя очередь пуста

peekLast

E peekLast()
Извлекает, но не удаляет последний элемент этой двусторонней очереди или возвращает null, если эта двусторонняя очередь пуста.
Возвращает:
хвост этой двусторонней очереди или null, если эта двусторонняя очередь пуста

removeFirstOccurrence

boolean removeFirstOccurrence(Object o)
Удаляет первое вхождение указанного элемента из этой двусторонней очереди. Если очередь не содержит этот элемент, она остается неизменной. Формально удаляется первый элемент e, такой что Objects.equals(o, e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что эквивалентно, если в результате вызова эта двусторонняя очередь изменилась).
Параметры:
o — элемент, который следует удалить из этой двусторонней очереди, если он присутствует
Возвращает:
true, если в результате этого вызова был удален элемент
Исключения:
ClassCastException — если класс указанного элемента несовместим с этой двусторонней очередью (необязательно)
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null (необязательно)

removeLastOccurrence

boolean removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента из этой двусторонней очереди. Если очередь не содержит этот элемент, она остается неизменной. Формально удаляется последний элемент e, такой что Objects.equals(o, e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что эквивалентно, если в результате вызова эта двусторонняя очередь изменилась).
Параметры:
o — элемент, который следует удалить из этой двусторонней очереди, если он присутствует
Возвращает:
true, если в результате этого вызова был удален элемент
Исключения:
ClassCastException — если класс указанного элемента несовместим с этой двусторонней очередью (необязательно)
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null (необязательно)

add

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

Этот метод эквивалентен addLast(E).

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

offer

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

Этот метод эквивалентен offerLast(E).

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

remove

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

Этот метод эквивалентен removeFirst().

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

poll

E poll()
Извлекает и удаляет голову очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), или возвращает null, если эта двусторонняя очередь пуста.

Этот метод эквивалентен pollFirst().

Указано в:
poll в интерфейсе Queue<E>
Возвращает:
первый элемент этой двусторонней очереди или null, если эта двусторонняя очередь пуста

element

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

Этот метод эквивалентен getFirst().

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

peek

E peek()
Извлекает, но не удаляет голову очереди, представленной этой двусторонней очередью (то есть первый элемент этой двусторонней очереди), или возвращает null, если эта двусторонняя очередь пуста.

Этот метод эквивалентен peekFirst().

Указано в:
peek в интерфейсе Queue<E>
Возвращает:
голову очереди, представленной этой двусторонней очередью, или null, если эта двусторонняя очередь пуста

addAll

boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в конец этой двусторонней очереди, как если бы для каждого из них был вызван метод addLast(E), в порядке их возврата итератором коллекции.

При использовании двусторонней очереди с ограниченной вместимостью обычно предпочтительнее отдельно вызывать offer для каждого элемента.

Исключение, возникшее при попытке добавить элемент, может привести к тому, что к моменту выбрасывания соответствующего исключения будет успешно добавлена только часть элементов.

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

push

void push(E e)
Помещает элемент в стек, представленный этой двусторонней очередью (то есть в начало этой двусторонней очереди), если это можно сделать немедленно, не нарушая ограничений по вместимости; если свободного места нет, выбрасывает IllegalStateException.

Этот метод эквивалентен addFirst(E).

Параметры:
e — помещаемый в стек элемент
Исключения:
IllegalStateException — если элемент нельзя добавить в данный момент из-за ограничений по вместимости
ClassCastException — если класс указанного элемента препятствует его добавлению в эту двустороннюю очередь
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null
IllegalArgumentException — если какое-либо свойство указанного элемента препятствует его добавлению в эту двустороннюю очередь

pop

E pop()
Извлекает элемент из стека, представленного этой двусторонней очередью. Иными словами, удаляет и возвращает первый элемент этой двусторонней очереди.

Этот метод эквивалентен removeFirst().

Возвращает:
элемент в начале этой двусторонней очереди (он же вершина стека, представленного этой двусторонней очередью)
Исключения:
NoSuchElementException — если эта двусторонняя очередь пуста

remove

boolean remove(Object o)
Удаляет первое вхождение указанного элемента из этой двусторонней очереди. Если очередь не содержит этот элемент, она остается неизменной. Формально удаляется первый элемент e, такой что Objects.equals(o, e) (если такой элемент существует). Возвращает true, если эта двусторонняя очередь содержала указанный элемент (или, что эквивалентно, если в результате вызова эта двусторонняя очередь изменилась).

Этот метод эквивалентен removeFirstOccurrence(Object).

Указано в:
remove в интерфейсе Collection<E>
Параметры:
o — элемент, который следует удалить из этой двусторонней очереди, если он присутствует
Возвращает:
true, если в результате этого вызова был удален элемент
Исключения:
ClassCastException — если класс указанного элемента несовместим с этой двусторонней очередью (необязательно)
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null (необязательно)

contains

boolean contains(Object o)
Возвращает true, если эта двусторонняя очередь содержит указанный элемент. Формально возвращает true тогда и только тогда, когда эта двусторонняя очередь содержит хотя бы один элемент e, такой что Objects.equals(o, e).
Указано в:
contains в интерфейсе Collection<E>
Параметры:
o — элемент, наличие которого в этой двусторонней очереди нужно проверить
Возвращает:
true, если эта двусторонняя очередь содержит указанный элемент
Исключения:
ClassCastException — если класс указанного элемента несовместим с этой двусторонней очередью (необязательно)
NullPointerException — если указанный элемент равен null, а эта двусторонняя очередь не допускает элементы null (необязательно)

size

int size()
Возвращает количество элементов в этой двусторонней очереди.
Указано в:
size в интерфейсе Collection<E>
Возвращает:
количество элементов в этой двусторонней очереди

iterator

Iterator<E> iterator()
Возвращает итератор по элементам этой двусторонней очереди в правильном порядке. Элементы будут возвращаться от первого (головы) к последнему (хвосту).
Указано в:
iterator в интерфейсе Collection<E>
Указано в:
iterator в интерфейсе Iterable<E>
Возвращает:
итератор по элементам этой двусторонней очереди в правильном порядке

descendingIterator

Iterator<E> descendingIterator()
Возвращает итератор по элементам этой двусторонней очереди в обратном порядке. Элементы будут возвращаться от последнего (хвоста) к первому (голове).
Возвращает:
итератор по элементам этой двусторонней очереди в обратном порядке

reversed

default Deque<E> reversed()
Возвращает представление этой коллекции с обратным порядком. Порядок обхода элементов в возвращаемом представлении обратен порядку обхода элементов в этой коллекции. Обратный порядок влияет на все операции, зависящие от порядка, включая операции над коллекциями-представлениями возвращаемого представления. Если реализация коллекции допускает изменение этого представления, изменения «передаются» базовой коллекции. В зависимости от реализации изменения базовой коллекции могут быть видны или не видны в этом представлении с обратным порядком.
Указано в:
reversed в интерфейсе SequencedCollection<E>
Требования к реализации:
Реализация этого интерфейса возвращает представление Deque с обратным порядком. Метод reversed() этого представления возвращает ссылку на этот Deque. Остальные операции над представлением реализуются посредством вызовов открытых методов этого Deque. Точная связь между вызовами методов представления и вызовами методов этого Deque не определена. Однако операции, зависящие от порядка, обычно ведут себя так, как если бы они делегировались соответствующему методу с противоположной ориентацией. Например, вызов getFirst для представления может привести к вызову getLast для этого Deque.
Возвращает:
представление этой коллекции с обратным порядком в виде Deque
Начиная с:
21

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