Spec-Zone.ru › OpenJDK 21

Класс ArrayDeque<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.ArrayDeque<E>
Параметры типа:
E - тип элементов, хранящихся в данном очереди с двух концов
Все реализованные интерфейсы:
Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, Queue<E>, SequencedCollection<E>
public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable
Реализация очереди с двух концов (deque) на основе массива с изменяемым размером. Очереди с двух концов типа ArrayDeque не имеют ограничений по размеру; они растут по мере необходимости. Они не потокобезопасны; в отсутствие внешней синхронизации они не поддерживают одновременный доступ несколькими потоками. Нулевые элементы запрещены. Этот класс, скорее всего, будет быстрее, чем Stack, когда используется как стек, и быстрее, чем LinkedList, когда используется как очередь.

Большинство ArrayDeque операций выполняются за амортизированное постоянное время. К исключениям относятся remove, removeFirstOccurrence, removeLastOccurrence, contains, iterator.remove(), а также операции с набором элементов, все из которых выполняются за линейное время.

Итераторы, возвращаемые методом iterator этого класса, являются *быстродействующими*: если очередь с двух концов изменяется каким-либо образом после создания итератора, кроме как через собственный метод итератора remove, итератор, как правило, сгенерирует исключение ConcurrentModificationException. Таким образом, при одновременном изменении итератор быстро и четко завершит работу, а не рискует произвольным, неопределённым поведением в неопределённое время.

Обратите внимание, что быстродействующее поведение итератора не гарантируется, поскольку в общем случае невозможно дать какие-либо жёсткие гарантии при одновременном изменении без синхронизации. Быстродействующие итераторы генерируют ConcurrentModificationException в случае необходимости, на основе максимального усилия. Поэтому неправильно разрабатывать программы, которые полагаются на это исключение для корректности: *быстродействующее поведение итераторов следует использовать только для обнаружения ошибок*.

Этот класс и его итератор реализуют все *необязательные* методы интерфейсов Collection, SequencedCollection и Iterator.

Этот класс является частью Фреймворка Java Collections.

С тех пор:
1.6
См. также:
  • Сериализованная форма

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

Конструктор Описание
ArrayDeque()
Создаёт пустой двусторонний циклический список с начальной ёмкостью, достаточной для хранения 16 элементов.
ArrayDeque(int numElements)
Создаёт пустой двусторонний циклический список с начальной ёмкостью, достаточной для хранения указанного количества элементов.
ArrayDeque(Collection<? extends E> c)
Создаёт двусторонний циклический список, содержащий элементы указанной коллекции в порядке, в котором они возвращаются итератором коллекции.

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

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в конец этого двустороннего циклического списка.
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в конец этого двустороннего циклического списка, как если бы вы вызывали addLast(E) для каждого из них в порядке, в котором они возвращаются итератором коллекции.
void addFirst(E e)
Вставляет указанный элемент в начало этого двустороннего циклического списка.
void addLast(E e)
Вставляет указанный элемент в конец этого двустороннего циклического списка.
void clear()
Удаляет все элементы из этого двустороннего циклического списка.
ArrayDeque<E> clone()
Возвращает копию этого двустороннего циклического списка.
boolean contains(Object o)
Возвращает true, если этот двусторонний циклический список содержит указанный элемент.
Iterator<E> descendingIterator()
Возвращает итератор над элементами в этом двустороннем циклическом списке в обратном порядке.
E element()
Извлекает, но не удаляет, голову очереди, представленной этим двусторонним циклическим списком.
void forEach(Consumer<? super E> action)
Выполняет заданное действие для каждого элемента двустороннего циклического списка до тех пор, пока все элементы не будут обработаны или действие не выбросит исключение.
E getFirst()
Возвращает, но не удаляет, первый элемент этого двустороннего циклического списка.
E getLast()
Возвращает, но не удаляет, последний элемент этого двустороннего циклического списка.
boolean isEmpty()
Возвращает true, если этот двусторонний циклический список не содержит элементов.
Iterator<E> iterator()
Возвращает итератор над элементами в этом двустороннем циклическом списке.
boolean offer(E e)
Вставляет указанный элемент в конец этого двустороннего циклического списка.
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)
Добавляет элемент в стек, представленный этим двусторонним циклическим списком.
E remove()
Извлекает и удаляет голову очереди, представленной этим двусторонним циклическим списком.
boolean remove(Object o)
Удаляет одно вхождение указанного элемента из этого двустороннего циклического списка.
boolean removeAll(Collection<?> c)
Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательная операция).
E removeFirst()
Извлекает и удаляет первый элемент этого двустороннего циклического списка.
boolean removeFirstOccurrence(Object o)
Удаляет первое вхождение указанного элемента в этом двустороннем циклическом списке (при прохождении от начала к концу).
boolean removeIf(Predicate<? super E> filter)
Удаляет все элементы этой коллекции, удовлетворяющие данному предикату.
E removeLast()
Извлекает и удаляет последний элемент этого двустороннего циклического списка.
boolean removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента в этом двустороннем циклическом списке (при прохождении от начала к концу).
boolean retainAll(Collection<?> c)
Оставляет только те элементы в этой коллекции, которые содержатся в указанной коллекции (необязательная операция).
int size()
Возвращает количество элементов в этом двустороннем циклическом списке.
Spliterator<E> spliterator()
Создаёт позднее связывание и быстродействие при обнаружении ошибки Spliterator над элементами в этом двустороннем циклическом списке.
Object[] toArray()
Возвращает массив, содержащий все элементы этого двустороннего циклического списка в правильном порядке (от первого к последнему).
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого двустороннего циклического списка в правильном порядке (от первого к последнему); тип массива, возвращаемого в результате, соответствует указанному массиву.

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

containsAll, toString

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

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

containsAll, equals, hashCode, parallelStream, stream, toArray

Методы, объявленные в интерфейсе java.util.Deque

reversed

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

ArrayDeque

public ArrayDeque()
Создаёт пустую очередь с начальной ёмкостью, достаточной для хранения 16 элементов.

ArrayDeque

public ArrayDeque(int numElements)
Создаёт пустую очередь с начальной ёмкостью, достаточной для хранения указанного количества элементов.
Параметры:
numElements - нижняя граница начальной ёмкости очереди

ArrayDeque

public ArrayDeque(Collection<? extends E> c)
Создаёт очередь, содержащую элементы указанной коллекции в том порядке, в котором они возвращаются итератором коллекции. (Первый элемент, возвращаемый итератором коллекции, становится первым элементом, или головой очереди.)
Параметры:
c - коллекция, элементы которой должны быть помещены в очередь
Исключения:
NullPointerException - если указанная коллекция равна null

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

addFirst

public void addFirst(E e)
Вставляет указанный элемент в начало этой очереди.
Унаследовано от:
addFirst в интерфейсе Deque<E>
Унаследовано от:
addFirst в интерфейсе SequencedCollection<E>
Параметры:
e - элемент для добавления
Исключения:
NullPointerException - если указанный элемент равен null

addLast

public void addLast(E e)
Вставляет указанный элемент в конец этой очереди.

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

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

addAll

public boolean addAll(Collection<? extends E> c)
Добавляет все элементы из указанной коллекции в конец этой очереди, как если бы для каждого из них вызывался метод addLast(E) в порядке, определяемом итератором коллекции.
Унаследовано от:
addAll в интерфейсе Collection<E>
Унаследовано от:
addAll в интерфейсе Deque<E>
Переопределяет:
addAll в классе AbstractCollection<E>
Параметры:
c - элементы, которые нужно вставить в эту очередь
Возвращает:
true если очередь была изменена в результате вызова
Исключения:
NullPointerException - если указанная коллекция или любой из её элементов равны null
См. также:
  • AbstractCollection.add(Object)

offerFirst

public boolean offerFirst(E e)
Вставляет указанный элемент в начало этой очереди.
Унаследовано от:
offerFirst в интерфейсе Deque<E>
Параметры:
e - элемент для добавления
Возвращает:
true (как указано в Deque.offerFirst(E))
Исключения:
NullPointerException - если указанный элемент равен null

offerLast

public boolean offerLast(E e)
Вставляет указанный элемент в конец этой очереди.
Унаследовано от:
offerLast в интерфейсе Deque<E>
Параметры:
e - элемент для добавления
Возвращает:
true (как указано в Deque.offerLast(E))
Исключения:
NullPointerException - если указанный элемент равен null

removeFirst

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

removeLast

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

pollFirst

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

pollLast

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

getFirst

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

getLast

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

peekFirst

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

peekLast

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

removeFirstOccurrence

public boolean removeFirstOccurrence(Object o)
Удаляет первое вхождение указанного элемента в этой очереди (при обходе очереди с головы в хвост). Если в очереди нет элемента, она не изменяется. Более формально, удаляет первый элемент e такой, что o.equals(e) (если такой элемент существует). Возвращает true , если эта очередь содержала указанный элемент (или, что эквивалентно, если эта очередь была изменена в результате вызова).
Унаследовано от:
removeFirstOccurrence в интерфейсе Deque<E>
Параметры:
o - элемент, который нужно удалить из этой очереди, если он присутствует
Возвращает:
true если очередь содержала указанный элемент

removeLastOccurrence

public boolean removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента в этом двустороннем очереди (при обходе очереди от начала к концу). Если в двусторонней очереди элемента нет, она не изменяется. Более формально, удаляет последний элемент e такой что o.equals(e) (если такой элемент существует). Возвращает true если эта двусторонняя очередь содержала указанный элемент (или, что равносильно, если эта двусторонняя очередь изменилась в результате вызова).
Specified by:
removeLastOccurrence в интерфейсе Deque<E>
Parameters:
o - элемент, который нужно удалить из этой двусторонней очереди, если он присутствует
Returns:
true если двусторонняя очередь содержала указанный элемент

add

public boolean add(E e)
Вставляет указанный элемент в конец этого двустороннего очереди.

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

Specified by:
add в интерфейсе Collection<E>
Specified by:
add в интерфейсе Deque<E>
Specified by:
add в интерфейсе Queue<E>
Overrides:
add в классе AbstractCollection<E>
Parameters:
e - добавляемый элемент
Returns:
true (как указано в Collection.add(E))
Throws:
NullPointerException - если указанный элемент равен null

offer

public boolean offer(E e)
Вставляет указанный элемент в конец этого двустороннего очереди.

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

Specified by:
offer в интерфейсе Deque<E>
Specified by:
offer в интерфейсе Queue<E>
Parameters:
e - добавляемый элемент
Returns:
true (как указано в Queue.offer(E))
Throws:
NullPointerException - если указанный элемент равен null

remove

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

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

Specified by:
remove в интерфейсе Deque<E>
Specified by:
remove в интерфейсе Queue<E>
Returns:
голова очереди, представленной этим двусторонним очереди
Throws:
NoSuchElementException - если этот двусторонний очередь пуст

poll

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

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

Specified by:
poll в интерфейсе Deque<E>
Specified by:
poll в интерфейсе Queue<E>
Returns:
голова очереди, представленной этим двусторонним очереди, или null если этот двусторонний очередь пуст

element

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

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

Specified by:
element в интерфейсе Deque<E>
Specified by:
element в интерфейсе Queue<E>
Returns:
голова очереди, представленной этим двусторонним очереди
Throws:
NoSuchElementException - если этот двусторонний очередь пуст

peek

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

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

Specified by:
peek в интерфейсе Deque<E>
Specified by:
peek в интерфейсе Queue<E>
Returns:
голова очереди, представленной этим двусторонним очереди, или null если этот двусторонний очередь пуст

push

public void push(E e)
Помещает элемент на стек, представленный этим двусторонним очереди. Другими словами, вставляет элемент в начало этого двустороннего очереди.

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

Specified by:
push в интерфейсе Deque<E>
Parameters:
e - элемент для помещения в стек
Throws:
NullPointerException - если указанный элемент равен null

pop

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

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

Specified by:
pop в интерфейсе Deque<E>
Returns:
элемент в начале этого двустороннего очереди (который является вершиной стека, представленного этим двусторонним очереди)
Throws:
NoSuchElementException - если этот двусторонний очередь пуст

size

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

isEmpty

public boolean isEmpty()
Возвращает true если этот двусторонний очередь не содержит элементов.
Specified by:
isEmpty в интерфейсе Collection<E>
Overrides:
isEmpty в классе AbstractCollection<E>
Returns:
true если этот двусторонний очередь не содержит элементов

iterator

public Iterator<E> iterator()
Возвращает итератор по элементам в этом двустороннем очереди. Элементы будут упорядочены от первого (головки) до последнего (хвоста). Это тот же порядок, в котором элементы будут извлекаться из очереди (через последовательные вызовы remove() или извлекаться (через последовательные вызовы pop()).
Specified by:
iterator в интерфейсе Collection<E>
Specified by:
iterator в интерфейсе Deque<E>
Specified by:
iterator в интерфейсе Iterable<E>
Specified by:
iterator в классе AbstractCollection<E>
Returns:
итератор по элементам в этом двустороннем очереди

descendingIterator

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

spliterator

public Spliterator<E> spliterator()
Создает связанный позднее и быстрый при ошибке Spliterator по элементам в этом двустороннем очереди.

Этот Spliterator сообщает о Spliterator.SIZED, Spliterator.SUBSIZED, Spliterator.ORDERED и Spliterator.NONNULL. Переопределяющие реализации должны документировать сообщение об дополнительных характеристиках.

Specified by:
spliterator в интерфейсе Collection<E>
Specified by:
spliterator в интерфейсе Iterable<E>
Returns:
Spliterator по элементам в этом двустороннем очереди
Since:
1.8

forEach

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

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

Specified by:
forEach в интерфейсе Iterable<E>
Parameters:
action - действие, которое нужно выполнить для каждого элемента
Throws:
NullPointerException - если указанное действие равно null

removeIf

public boolean removeIf(Predicate<? super E> filter)
Описание скопировано из интерфейса: Collection
Удаляет все элементы этого набора, удовлетворяющие заданному предикату. Ошибки или исключения времени выполнения, сгенерированные во время итерации или предикатом, передаются вызывающей стороне.
Определено в:
removeIf в интерфейсе Collection<E>
Параметры:
filter - предикат, возвращающий true для элементов, подлежащих удалению
Возвращает:
true если какие-либо элементы были удалены
Исключение:
NullPointerException - если указанный фильтр равен null

removeAll

public boolean removeAll(Collection<?> c)
Описание скопировано из класса: AbstractCollection
Удаляет все элементы этого набора, которые также содержатся в указанном наборе (необязательная операция). После возвращения этого вызова этот набор не будет содержать элементов, общих с указанным набором.
Определено в:
removeAll в интерфейсе Collection<E>
Переопределяет:
removeAll в классе AbstractCollection<E>
Параметры:
c - набор, содержащий элементы, подлежащие удалению из этого набора
Возвращает:
true если этот набор изменился в результате вызова
Исключение:
NullPointerException - если этот набор содержит один или несколько null-элементов, а указанный набор не поддерживает null-элементы (необязательно) или если указанный набор равен null
См. также:
  • AbstractCollection.remove(Object)
  • AbstractCollection.contains(Object)

retainAll

public boolean retainAll(Collection<?> c)
Описание скопировано из класса: AbstractCollection
Сохраняет только элементы в этом наборе, которые содержатся в указанном наборе (необязательная операция). Другими словами, удаляет из этого набора все его элементы, которые не содержатся в указанном наборе.
Определено в:
retainAll в интерфейсе Collection<E>
Переопределяет:
retainAll в классе AbstractCollection<E>
Параметры:
c - набор, содержащий элементы, которые должны быть сохранены в этом наборе
Возвращает:
true если этот набор изменился в результате вызова
Исключение:
NullPointerException - если этот набор содержит один или несколько null-элементов, а указанный набор не допускает null-элементов (необязательно) или если указанный набор равен null
См. также:
  • AbstractCollection.remove(Object)
  • AbstractCollection.contains(Object)

contains

public boolean contains(Object o)
Возвращает true если этот дек содержит указанный элемент. Более формально, возвращает true тогда и только тогда, когда этот дек содержит хотя бы один элемент e, такой что o.equals(e).
Определено в:
contains в интерфейсе Collection<E>
Определено в:
contains в интерфейсе Deque<E>
Переопределяет:
contains в классе AbstractCollection<E>
Параметры:
o - объект, подлежащий проверке на наличие в этом деке
Возвращает:
true если этот дек содержит указанный элемент

remove

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

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

Определено в:
remove в интерфейсе Collection<E>
Определено в:
remove в интерфейсе Deque<E>
Переопределяет:
remove в классе AbstractCollection<E>
Параметры:
o - элемент, подлежащий удалению из этого дека, если он присутствует
Возвращает:
true если этот дек содержал указанный элемент

clear

public void clear()
Удаляет все элементы из этого дека. Дек будет пустым после возвращения этого вызова.
Определено в:
clear в интерфейсе Collection<E>
Переопределяет:
clear в классе AbstractCollection<E>

toArray

public Object[] toArray()
Возвращает массив, содержащий все элементы в этом деке в правильной последовательности (от первого до последнего элемента).

Возвращаемый массив будет «безопасным» в том смысле, что ссылки на него не хранятся в этом деке. (Другими словами, этот метод должен выделить новый массив). Таким образом, вызывающая сторона свободна изменять возвращаемый массив.

Этот метод действует как мост между массивными и основанными на наборах API.

Определено в:
toArray в интерфейсе Collection<E>
Переопределяет:
toArray в классе AbstractCollection<E>
Возвращает:
массив, содержащий все элементы в этом деке

toArray

public <T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы в этом деке в правильной последовательности (от первого до последнего элемента); тип выполнения возвращаемого массива - указанный массив. Если дек помещается в указанный массив, он возвращается в нем. В противном случае выделяется новый массив с типом выполнения указанного массива и размером этого дека.

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

Как и метод toArray(), этот метод действует как мост между массивными и основанными на наборах API. Кроме того, этот метод позволяет точно контролировать тип выполнения выходного массива и может в определенных обстоятельствах использоваться для экономии затрат на выделение.

Предположим, что x - это дек, известный тем, что содержит только строки. Следующий код может использоваться для выгрузки дека в новый выделенный массив String:

 String[] y = x.toArray(new String[0]);
Обратите внимание, что toArray(new Object[0]) идентичен по функции toArray().
Определено в:
toArray в интерфейсе Collection<E>
Переопределяет:
toArray в классе AbstractCollection<E>
Тип параметров:
T - тип компонента массива для хранения коллекции
Параметры:
a - массив, в который должны быть помещены элементы дека, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа выполнения
Возвращает:
массив, содержащий все элементы в этом деке
Исключение:
ArrayStoreException - если тип выполнения указанного массива не является супертипом типа выполнения каждого элемента в этом деке
NullPointerException - если указанный массив равен null

clone

public ArrayDeque<E> clone()
Возвращает копию этого дека.
Переопределяет:
clone в классе Object
Возвращает:
копия этого дека
См. также:
  • Cloneable

© 1993, 2023, 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/21/docs/api/java.base/java/util/ArrayDeque.html

Spec-Zone.ru

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