Java ArrayDeque详解 - TongtongLan/Java GitHub Wiki
继承 AbstractConllection 类,实现 Deque 接口。这个类及其迭代器实现了Collection和Iterator接口的所有可选方法。
Deque接口的可调整大小的实现。 Array deques没有容量限制;他们根据需要增长以支持使用。他们不是线程安全的;在没有外部同步的情况下,它们不支持多线程的并发访问。空元素是被禁止的。This class is likely to be faster than Stack when used as a stack, and faster than LinkedList when used as a queue.(当用作堆栈时,该类可能比Stack快,在用作队列时比LinkedList快。)
Most ArrayDeque operations run in amortized constant time. Exceptions include remove, removeFirstOccurrence, removeLastOccurrence, contains, iterator.remove(), and the bulk operations, all of which run in linear time.
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 remove 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 future.
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 throw 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.