前面我们介绍了队列Queue的两个实现类LinkedListPriorityQueue,LinkedList还实现了双端队列接口Deque,Java容器类中还有一个双端队列的实现类ArrayDeque,它是基于数组实现的。

我们知道,一般而言,由于需要移动元素,数组的插入和删除效率比较低,但ArrayDeque的效率却非常高,它是怎么实现的呢?本节我们就来详细探讨。

我们首先来看ArrayDeque的用法,然后来分析其实现原理,最后总结分析其特点。

用法

ArrayDeque实现了Deque接口,同LinkedList一样,它的队列长度也是没有限制的,在LinkedList一节我们介绍过Deque接口,这里简要回顾一下。

Deque扩展了Queue,有队列的所有方法,还可以看做栈,有栈的基本方法push/pop/peek,还有明确的操作两端的方法如addFirst/removeLast等。

ArrayDeque有如下构造方法:

public ArrayDeque() public ArrayDeque(
        		

网友评论