集合系列 Queue(十一):ArrayDeque
目录 1 概述 2 源码分析 1 概述 从名字我们可以看出,其实一个双向队列实现,而且底层采用数组实现。 public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable 从定义可以看出,其实现了 Deque 接口。 2 源码分析 为了深入理解 ArrayDeque 的原理,我们将从类成员变量、构造方法、核心方法两个方面逐一介绍。 2.1 类成员变量 // 数据数组 transient Object[] elements; // 头结点 transient int head; // 尾节点 transient int tail; 从类成员变量我们就可以知道,其底层确实使用数组存储。 2.2 构造方法 ArrayDeque 一共有 3 个构造方法: public ArrayDeque() { elements = new Object[16]; } public ArrayDeque(int numElements) { allocateElements(numElements); } public ArrayDeque(Collection<? extends E> c) { allocateElements(c.size()); addAll