E -元素举行此集合中的类型
public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable
Deque接口的可调整大小的数组实现。阵列的双端队列没有容量限制;他们的成长需要支持使用。他们不是线程安全的;在外部同步的情况下,他们不支持多个线程的并发访问。禁止空元素。这类可能是当用作堆栈比
Stack更快,更快,当作为一个队列比
LinkedList。
最ArrayDeque操作运行在固定的时间。除了remove,removeFirstOccurrence,removeLastOccurrence,contains,iterator.remove(),和批量操作,所有这一切都运行在线性时间。
迭代器返回这个类的方法是iterator快速失败:如果的确是在迭代器创建任何时间修改,以任何方式除了通过迭代器的remove方法,迭代器通常会把ConcurrentModificationException。因此,在遇到同步修改,迭代器不能快速、干净,而不是冒着任意的,非在将来一个不确定的时间确定的行为。
注意迭代器不能快速失败行为得到保证的话,一般来说,不可能在不同步的并发修改的存在作出难以保证。快速失败迭代器扔ConcurrentModificationException尽最大努力的基础上。因此,要写一个程序,依靠这一例外的正确性错误:快速失败迭代器的行为只能用来检测错误。
这个类和它的迭代器实现所有的可选方法的Collection和Iterator接口。
这个班的一员 Java Collections Framework。
| Constructor and Description |
|---|
ArrayDeque()
构造一个初始容量足够容纳16个元素的空数组队列。
|
ArrayDeque(Collection<? extends E> c)
构建一个deque容器包含指定集合的元素,它们是由集合的迭代器返回的顺序。
|
ArrayDeque(int numElements)
构造一个初始容量足够容纳指定数目的元素空数组队列。
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(E e)
在这个队列的末尾插入指定元素。
|
void |
addFirst(E e)
在这个队列的前面插入指定元素。
|
void |
addLast(E e)
在这个队列的末尾插入指定元素。
|
void |
clear()
删除所有的从这个容器元素。
|
ArrayDeque<E> |
clone()
返回一个复制该deque容器。
|
boolean |
contains(Object o)
如果这两
true返回包含指定的元素。
|
Iterator<E> |
descendingIterator()
返回在反向顺序在deque容器元素的迭代器。
|
E |
element()
检索,但不删除,这代表的deque队列的头部。
|
E |
getFirst()
检索,但不删除该deque容器的第一个元素。
|
E |
getLast()
检索,但不删除该队列的最后一个元素。
|
boolean |
isEmpty()
返回
true如果队列不包含元素。
|
Iterator<E> |
iterator()
返回在deque容器元素的迭代器。
|
boolean |
offer(E e)
在这个队列的末尾插入指定元素。
|
boolean |
offerFirst(E e)
在这个队列的前面插入指定元素。
|
boolean |
offerLast(E e)
在这个队列的末尾插入指定元素。
|
E |
peek()
检索,但不删除,这代表的队列队列的头部,或返回
null如果队列是空的。
|
E |
peekFirst()
检索,但不删除该deque容器的第一个元素,或返回
null如果队列是空的。
|
E |
peekLast()
检索,但不删除该队列的最后一个元素,或返回
null如果队列是空的。
|
E |
poll()
检索并移除该deque表示队列的头部(换句话说,这个容器的第一个元素),或返回
null如果队列是空的。
|
E |
pollFirst()
检索并移除此队列的第一个元素,或返回
null如果队列是空的。
|
E |
pollLast()
检索并移除此队列的最后一个元素,或返回
null如果队列是空的。
|
E |
pop()
从这个弹出堆栈队列代表元素。
|
void |
push(E e)
将一个元素到该deque表示堆栈。
|
E |
remove()
检索并移除该deque队列的头代表。
|
boolean |
remove(Object o)
从这个队列中移除指定元素的一个实例。
|
E |
removeFirst()
检索并移除此队列的第一个元素。
|
boolean |
removeFirstOccurrence(Object o)
删除在这个队列的第一个出现的指定元素(当遍历容器从头部到尾部)。
|
E |
removeLast()
检索并移除此队列的最后一个元素。
|
boolean |
removeLastOccurrence(Object o)
在deque容器移除指定元素的最后出现(当遍历容器从头部到尾部)。
|
int |
size()
返回该容器元素的数量。
|
Spliterator<E> |
spliterator()
创建一个后期绑定和快速失败
Spliterator在deque容器元素。
|
Object[] |
toArray()
返回一个数组包含所有以正确的顺序在deque容器元素(从第一个到最后一个元素)。
|
<T> T[] |
toArray(T[] a)
返回一个数组包含所有以正确的顺序在deque容器元素(从第一个到最后一个元素);返回数组的运行时类型为指定数组。
|
addAll, containsAll, removeAll, retainAll, toStringequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddAll, containsAll, equals, hashCode, parallelStream, removeAll, removeIf, retainAll, streampublic ArrayDeque()
public ArrayDeque(int numElements)
numElements下初始的队列容量约束
public ArrayDeque(Collection<? extends E> c)
c的元素将被放入队列集合
NullPointerException -如果指定集合为空
public void addFirst(E e)
addFirst 接口
Deque<E>
e -元素添加
NullPointerException -如果指定元素为null
public void addLast(E e)
这种方法相当于add(E)。
addLast 接口
Deque<E>
e -元素添加
NullPointerException -如果指定元素为null
public boolean offerFirst(E e)
offerFirst 接口
Deque<E>
e -元素添加
true(由
Deque.offerFirst(E)指定)
NullPointerException -如果指定元素为null
public boolean offerLast(E e)
offerLast 接口
Deque<E>
e -元素添加
true(由
Deque.offerLast(E)指定)
NullPointerException -如果指定元素为null
public E removeFirst()
Deque
pollFirst仅在于它抛出一个异常,如果这个容器是空的。
removeFirst 接口
Deque<E>
NoSuchElementException -如果这队列是空的
public E removeLast()
Deque
pollLast仅在于它抛出一个异常,如果这个容器是空的。
removeLast 接口
Deque<E>
NoSuchElementException -如果这队列是空的
public E getFirst()
Deque
peekFirst仅在于它抛出一个异常,如果这个容器是空的。
getFirst 接口
Deque<E>
NoSuchElementException -如果这队列是空的
public E getLast()
Deque
peekLast仅在于它抛出一个异常,如果这个容器是空的。
getLast 接口
Deque<E>
NoSuchElementException -如果这队列是空的
public boolean removeFirstOccurrence(Object o)
o.equals(e)第一单元
e(如果这样一个元素存在)。如果这两
true返回包含指定元素(或等价地,如果调用的结果这的确改变了)。
removeFirstOccurrence 接口
Deque<E>
o元要从队列移除,如果存在
true如果队列包含指定元素
public boolean removeLastOccurrence(Object o)
o.equals(e)移除最后一个元素
e(如果这样一个元素存在)。如果这两
true返回包含指定元素(或等价地,如果调用的结果这的确改变了)。
removeLastOccurrence 接口
Deque<E>
o元要从队列移除,如果存在
true如果队列包含指定元素
public boolean add(E e)
这种方法相当于addLast(E)。
add 接口
Collection<E>
add 接口
Deque<E>
add 接口
Queue<E>
add 方法重写,继承类
AbstractCollection<E>
e -元素添加
true(由
Collection.add(E)指定)
NullPointerException -如果指定元素为null
public boolean offer(E e)
这种方法相当于offerLast(E)。
offer 接口
Deque<E>
offer 接口
Queue<E>
e -元素添加
true(由
Queue.offer(E)指定)
NullPointerException -如果指定元素为null
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 -如果指定元素为null
public E pop()
这种方法相当于removeFirst()。
pop 接口
Deque<E>
NoSuchElementException -如果这队列是空的
public int size()
size 接口
Collection<E>
size 接口
Deque<E>
size 方法重写,继承类
AbstractCollection<E>
public boolean isEmpty()
true如果队列不包含元素。
isEmpty 接口
Collection<E>
isEmpty 方法重写,继承类
AbstractCollection<E>
true队列不包含元素
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 方法重写,继承类
AbstractCollection<E>
o对象进行检查在deque容器
true包含指定的元素
public boolean remove(Object o)
o.equals(e)第一单元
e(如果这样一个元素存在)。如果这两
true返回包含指定元素(或等价地,如果调用的结果这的确改变了)。
这种方法相当于removeFirstOccurrence(Object)。
remove 接口
Collection<E>
remove 接口
Deque<E>
remove 方法重写,继承类
AbstractCollection<E>
o元要从队列移除,如果存在
true队列包含指定元素
public void clear()
clear 接口
Collection<E>
clear 方法重写,继承类
AbstractCollection<E>
public Object[] toArray()
返回的数组将“安全”,没有提到它的容器保持。(换句话说,这种方法必须分配一个新的数组)。因此,调用方可以自由修改返回的数组。
此方法作为基于数组和基于集合的原料药之间的桥梁。
toArray 接口
Collection<E>
toArray 方法重写,继承类
AbstractCollection<E>
public <T> T[] toArray(T[] a)
如果这的确符合指定数组中剩余的空间(即数组有比这更多的元素,deque)阵列中的队列立即结束后的元素设置为null。
像toArray()方法,该方法作为之间的桥梁,基于阵列和基于集合API。此外,该方法允许对输出数组的运行时类型的精确控制,并在某些情况下,可用于节省分配成本。
假设x是deque容器称为只包含字符串。下面的代码可以用来倾倒容器为新分配的数组String:
String[] y = x.toArray(new String[0]);注意
toArray(new Object[0])是相同的功能,
toArray()。
toArray 接口
Collection<E>
toArray 方法重写,继承类
AbstractCollection<E>
T -数组的运行时类型包含集合
a -为该容器的元素被存储数组,如果它足够大;否则,一个新的运行时类型相同的数组分配给这个目的
ArrayStoreException -如果指定数组的运行时类型不是超在该队列的每个元素运行时类型
NullPointerException -如果指定的数组是空的
public ArrayDeque<E> clone()
public Spliterator<E> spliterator()
Spliterator在deque容器元素。
报告的Spliterator Spliterator.SIZED,Spliterator.SUBSIZED,Spliterator.ORDERED,和Spliterator.NONNULL。重写实现应记录附加特征值的报告。
spliterator 接口
Iterable<E>
spliterator 接口
Collection<E>
Spliterator
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.