Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохранен в этом набореpublic class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable
Deque
интерфейс. У двухсторонних очередей массива нет никаких ограничений емкости; они растут по мере необходимости, чтобы поддерживать использование. Они не ориентированы на многопотоковое исполнение; в отсутствие внешней синхронизации они не поддерживают параллельный доступ многократными потоками. Запрещаются нулевые элементы. Этот класс, вероятно, будет быстрее чем Stack
когда использующийся в качестве стека, и быстрее чем LinkedList
когда использующийся в качестве очереди. В амортизируемое постоянное время работает большинство операций ArrayDeque. Исключения включают remove
, removeFirstOccurrence
, removeLastOccurrence
, contains
, iterator.remove()
, и объемные операции, все из который выполненный в линейное время.
iterators, возвращенные методом iterator этого класса, являются сбоем быстро: Если двухсторонняя очередь изменяется когда-либо после того, как iterator создается, всегда кроме через собственный метод remove iterator, iterator обычно бросит a ConcurrentModificationException
. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем.
Отметьте, что поведение сбоя быстро iterator не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Перестаньте работать быстро iterators бросают ConcurrentModificationException на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро iterators должно использоваться только, чтобы обнаружить ошибки.
Этот класс и его iterator реализуют все дополнительные методы Collection
и Iterator
интерфейсы.
Этот класс является элементом Платформы Наборов 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()
Возвращает число элементов в этой двухсторонней очереди.
|
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этой двухсторонней очереди в надлежащей последовательности (от сначала, чтобы продлиться элемент).
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этой двухсторонней очереди в надлежащей последовательности (от сначала, чтобы продлиться элемент); тип времени выполнения возвращенного массива является типом указанного массива.
|
addAll, containsAll, removeAll, retainAll, toString
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
- элемент, чтобы добавитьDeque.offerFirst(E)
)NullPointerException
- если указанный элемент является нулемpublic boolean offerLast(E e)
offerLast
в интерфейсе Deque<E>
e
- элемент, чтобы добавить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)
removeFirstOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийpublic boolean removeLastOccurrence(Object o)
removeLastOccurrence
в интерфейсе Deque<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийpublic boolean add(E e)
Этот метод эквивалентен addLast(E)
.
add
в интерфейсе Collection<E>
add
в интерфейсе Deque<E>
add
в интерфейсе Queue<E>
add
в классе AbstractCollection<E>
e
- элемент, чтобы добавитьCollection.add(E)
)NullPointerException
- если указанный элемент является нулемpublic boolean offer(E e)
Этот метод эквивалентен offerLast(E)
.
offer
в интерфейсе Deque<E>
offer
в интерфейсе Queue<E>
e
- элемент, чтобы добавитьQueue.offer(E)
)NullPointerException
- если указанный элемент является нулемpublic E remove()
poll
только в этом это выдает исключение, если эта двухсторонняя очередь пуста. Этот метод эквивалентен removeFirst()
.
public E poll()
Этот метод эквивалентен pollFirst()
.
public E element()
peek
только в этом это выдает исключение, если эта двухсторонняя очередь пуста. Этот метод эквивалентен getFirst()
.
public E peek()
Этот метод эквивалентен 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
в классе AbstractCollection<E>
public boolean isEmpty()
isEmpty
в интерфейсе Collection<E>
isEmpty
в классе AbstractCollection<E>
public Iterator<E> iterator()
remove()
или вытолканный (через последовательные звонки pop()
).public Iterator<E> descendingIterator()
Deque
descendingIterator
в интерфейсе Deque<E>
public boolean contains(Object o)
contains
в интерфейсе Collection<E>
contains
в интерфейсе Deque<E>
contains
в классе AbstractCollection<E>
o
- объект, который будет проверен на включение в этой двухсторонней очередиpublic boolean remove(Object o)
Этот метод эквивалентен removeFirstOccurrence(java.lang.Object)
.
remove
в интерфейсе Collection<E>
remove
в интерфейсе Deque<E>
remove
в классе AbstractCollection<E>
o
- элемент, который будет удален из этой двухсторонней очереди, если существующийpublic void clear()
clear
в интерфейсе Collection<E>
clear
в классе AbstractCollection<E>
public Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этой двухсторонней очередью. (Другими словами этот метод должен выделить новый массив). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
toArray
в классе 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
в классе AbstractCollection<E>
a
- массив, в который должны быть сохранены элементы двухсторонней очереди, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой цельюArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этой двухсторонней очередиNullPointerException
- если указанный массив является нулемpublic ArrayDeque<E> clone()
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.