Resizable-array implementation of the
Deque interface. Array
deques have no capacity restrictions; they grow as necessary to support
usage. They are not thread-safe; in the absence of external
synchronization, they do not support concurrent access by multiple threads.
Null elements are prohibited. This class is likely to be faster than
Stack when used as a stack, and faster than
when used as a queue.
ArrayDeque operations run in amortized constant time.
iterator.remove(), and the bulk operations, all of which run in linear
The iterators returned by this class's
iterator method are
fail-fast: If the deque is modified at any time after the iterator
is created, in any way except through the iterator's own
method, the iterator will generally throw a
ConcurrentModificationException. Thus, in the face of concurrent
modification, the iterator fails quickly and cleanly, rather than risking
arbitrary, non-deterministic behavior at an undetermined time in the
Note that the fail-fast behavior of an iterator cannot be guaranteed
as it is, generally speaking, impossible to make any hard guarantees in the
presence of unsynchronized concurrent modification. Fail-fast iterators
ConcurrentModificationException on a best-effort basis.
Therefore, it would be wrong to write a program that depended on this
exception for its correctness: the fail-fast behavior of iterators
should be used only to detect bugs.
This class is a member of the Java Collections Framework.
|the type of elements held in this collection|