Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable
Deque
интерфейс. У двухсторонних очередей массива нет никаких ограничений емкости; они растут по мере необходимости, чтобы поддерживать использование. Они не ориентированы на многопотоковое исполнение; в отсутствие внешней синхронизации они не поддерживают параллельный доступ многократными потоками. Запрещаются нулевые элементы. Этот class, вероятно, будет быстрее чем Stack
когда использующийся в качестве стека, и быстрее чем LinkedList
когда использующийся в качестве очереди. Больше всего ArrayDeque
в амортизируемое постоянное время работают операции. Исключения включают remove
, removeFirstOccurrence
, removeLastOccurrence
, contains
, iterator.remove()
, и объемные операции, все из который выполненный в линейное время.
iterators возвратился этим class iterator
метод является сбоем быстро: Если двухсторонняя очередь изменяется когда-либо после того, как iterator создается, всегда кроме через собственный iterator's remove
метод, iterator обычно бросит a ConcurrentModificationException
. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.
Отметьте, что поведение сбоя быстро iterator не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Приведите бросок iterators к сбою быстро ConcurrentModificationException
на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро iterators должно использоваться только, чтобы обнаружить ошибки.
Этот class и его iterator реализуют все дополнительные методы Collection
и Iterator
интерфейсы.
Этот class является элементом Платформы Наборов Java.
Конструктор и Описание |
---|
ArrayDeque()
Создает пустую двухстороннюю очередь массива с начальной емкостью, достаточной, чтобы содержать 16 элементов.
|
ArrayDeque(Collection<? extends E> c)
Создает двухстороннюю очередь, содержащую элементы указанного набора, в порядке, они возвращаются iterator набора.
|
ArrayDeque(int numElements)
Создает пустую двухстороннюю очередь массива с начальной емкостью, достаточной, чтобы содержать конкретное количество элементов.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Вставляет указанный элемент в конце этой двухсторонней очереди.
|
void |
addFirst(E e)
Вставляет указанный элемент впереди этой двухсторонней очереди.
|
void |
addLast(E e)
Вставляет указанный элемент в конце этой двухсторонней очереди.
|
void |
clear()
Удаляет все элементы от этой двухсторонней очереди.
|
ArrayDeque<E> |
clone()
Возвращает копию этой двухсторонней очереди.
|
boolean |
contains(Object o)
Возвраты
true если эта двухсторонняя очередь содержит указанный элемент. |
Iterator<E> |
descendingIterator()
Возвращает iterator по элементам в этой двухсторонней очереди в обратном последовательном порядке.
|
E |
element()
Получает, но не удаляет, глава очереди, представленной этой двухсторонней очередью.
|
E |
getFirst()
Получает, но не удаляет, первый элемент этой двухсторонней очереди.
|
E |
getLast()
Получает, но не удаляет, последний элемент этой двухсторонней очереди.
|
boolean |
isEmpty()
Возвраты
true если эта двухсторонняя очередь не содержит элементов. |
Iterator<E> |
iterator()
Возвращает 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)
Удаляет единственный экземпляр указанного элемента от этой двухсторонней очереди.
|
E |
removeFirst()
Получает и удаляет первый элемент этой двухсторонней очереди.
|
boolean |
removeFirstOccurrence(Object o)
Удаляет первое возникновение указанного элемента в этой двухсторонней очереди (пересекая двухстороннюю очередь от главы к хвосту).
|
E |
removeLast()
Получает и удаляет последний элемент этой двухсторонней очереди.
|
boolean |
removeLastOccurrence(Object o)
Удаляет последнее вхождение указанного элемента в этой двухсторонней очереди (пересекая двухстороннюю очередь от главы к хвосту).
|
int |
size()
Возвращает число элементов в этой двухсторонней очереди.
|
Spliterator<E> |
spliterator()
Создает a
Spliterator по элементам в этом наборе. |
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этой двухсторонней очереди в надлежащей последовательности (от сначала, чтобы продлиться элемент).
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этой двухсторонней очереди в надлежащей последовательности (от сначала, чтобы продлиться элемент); тип времени выполнения возвращенного массива является типом указанного массива.
|
addAll, containsAll, removeAll, retainAll, toString
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addAll, containsAll, equals, hashCode, parallelStream, removeAll, removeIf, retainAll, stream
forEach
public ArrayDeque()
public ArrayDeque(int numElements)
numElements
- нижняя граница на начальной емкости двухсторонней очередиpublic ArrayDeque(Collection<? extends E> c)
c
- набор, элементы которого должны быть помещены в двухстороннюю очередьNullPointerException
- если указанный набор является нулемpublic void addFirst(E e)
addFirst
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьNullPointerException
- если указанный элемент является нулемpublic void addLast(E e)
Этот метод эквивалентен add(E)
.
addLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьNullPointerException
- если указанный элемент является нулемpublic boolean offerFirst(E e)
offerFirst
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьtrue
(как определено Deque.offerFirst(E)
)NullPointerException
- если указанный элемент является нулемpublic boolean offerLast(E e)
offerLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавитьtrue
(как определено Deque.offerLast(E)
)NullPointerException
- если указанный элемент является нулемpublic E removeFirst()
Deque
pollFirst
только в этом это выдает исключение, если эта двухсторонняя очередь пуста.removeFirst
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic E removeLast()
Deque
pollLast
только в этом это выдает исключение, если эта двухсторонняя очередь пуста.removeLast
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic E pollFirst()
Deque
public E pollLast()
Deque
public E getFirst()
Deque
peekFirst
только в этом это выдает исключение, если эта двухсторонняя очередь пуста.getFirst
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic E getLast()
Deque
peekLast
только в этом это выдает исключение, если эта двухсторонняя очередь пуста.getLast
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic E peekFirst()
Deque
public E peekLast()
Deque
public boolean removeFirstOccurrence(Object o)
e
так, что o.equals(e)
(если такой элемент существует). Возвраты true
если эта двухсторонняя очередь, содержавшая указанный элемент (или эквивалентно, если эта двухсторонняя очередь, измененная в результате вызова).removeFirstOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийtrue
если двухсторонняя очередь, содержавшая указанный элементpublic boolean removeLastOccurrence(Object o)
e
так, что o.equals(e)
(если такой элемент существует). Возвраты true
если эта двухсторонняя очередь, содержавшая указанный элемент (или эквивалентно, если эта двухсторонняя очередь, измененная в результате вызова).removeLastOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийtrue
если двухсторонняя очередь, содержавшая указанный элементpublic boolean add(E e)
Этот метод эквивалентен addLast(E)
.
add
в интерфейсе Collection<E>
add
в интерфейсе Deque<E>
add
в интерфейсе Queue<E>
add
в class AbstractCollection<E>
e
- элемент, чтобы добавитьtrue
(как определено Collection.add(E)
)NullPointerException
- если указанный элемент является нулемpublic boolean offer(E e)
Этот метод эквивалентен offerLast(E)
.
offer
в интерфейсе Deque<E>
offer
в интерфейсе Queue<E>
e
- элемент, чтобы добавитьtrue
(как определено Queue.offer(E)
)NullPointerException
- если указанный элемент является нулемpublic E remove()
poll
только в этом это выдает исключение, если эта двухсторонняя очередь пуста. Этот метод эквивалентен removeFirst()
.
public E poll()
null
если эта двухсторонняя очередь пуста. Этот метод эквивалентен pollFirst()
.
public E element()
peek
только в этом это выдает исключение, если эта двухсторонняя очередь пуста. Этот метод эквивалентен getFirst()
.
public E peek()
null
если эта двухсторонняя очередь пуста. Этот метод эквивалентен peekFirst()
.
public void push(E e)
Этот метод эквивалентен addFirst(E)
.
push
в интерфейсе Deque<E>
e
- элемент, чтобы продвинутьNullPointerException
- если указанный элемент является нулемpublic E pop()
Этот метод эквивалентен removeFirst()
.
pop
в интерфейсе Deque<E>
NoSuchElementException
- если эта двухсторонняя очередь пустаpublic int size()
size
в интерфейсе Collection<E>
size
в интерфейсе Deque<E>
size
в class AbstractCollection<E>
public boolean isEmpty()
true
если эта двухсторонняя очередь не содержит элементов.isEmpty
в интерфейсе Collection<E>
isEmpty
в class AbstractCollection<E>
true
если эта двухсторонняя очередь не содержит элементовpublic Iterator<E> iterator()
remove()
или вытолканный (через последовательные звонки pop()
).public Iterator<E> descendingIterator()
Deque
descendingIterator
в интерфейсе Deque<E>
public boolean contains(Object o)
true
если эта двухсторонняя очередь содержит указанный элемент. Более формально, возвраты true
если и только если эта двухсторонняя очередь содержит по крайней мере один элемент e
так, что o.equals(e)
.contains
в интерфейсе Collection<E>
contains
в интерфейсе Deque<E>
contains
в class AbstractCollection<E>
o
- объект, который будет проверен на включение в этой двухсторонней очередиtrue
если эта двухсторонняя очередь содержит указанный элементpublic boolean remove(Object o)
e
так, что o.equals(e)
(если такой элемент существует). Возвраты true
если эта двухсторонняя очередь, содержавшая указанный элемент (или эквивалентно, если эта двухсторонняя очередь, измененная в результате вызова). Этот метод эквивалентен removeFirstOccurrence(Object)
.
remove
в интерфейсе Collection<E>
remove
в интерфейсе Deque<E>
remove
в class AbstractCollection<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийtrue
если эта двухсторонняя очередь, содержавшая указанный элементpublic void clear()
clear
в интерфейсе Collection<E>
clear
в class AbstractCollection<E>
public Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этой двухсторонней очередью. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в class AbstractCollection<E>
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
в class AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы двухсторонней очереди, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой цельюArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой двухсторонней очередиNullPointerException
- если указанный массив является нулемpublic ArrayDeque<E> clone()
public Spliterator<E> spliterator()
Collection
Spliterator
по элементам в этом наборе. Возвращенный Spliterator
должна сообщить характеристика Spliterator.SIZED
; реализации должны задокументировать любые дополнительные характеристические значения, о которых сообщает возвращенный Spliterator.
Реализация по умолчанию должна быть переопределена подклассами, которые могут возвратить более эффективный spliterator. Чтобы сохранить ожидаемое поведение лени для Collection.stream()
и Collection.parallelStream()
} у методов, spliterators должна или быть характеристика IMMUTABLE
или CONCURRENT
, или быть поздним связыванием. Если ни один из них не практичен, переопределение class должен описать задокументированную политику spliterator привязки и структурной интерференции, и должен переопределить Collection.stream()
и Collection.parallelStream()
методы, чтобы создать потоки, используя a Supplier
из spliterator, как в:
Stream<E> s = StreamSupport.stream(() -> spliterator(), spliteratorCharacteristics)
Эти требования гарантируют что потоки, произведенные Collection.stream()
и Collection.parallelStream()
методы отразят содержание набора с инициирования терминальной операции с потоками.
spliterator
в интерфейсе Collection<E>
Spliterator
по элементам в этом наборе
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92