前面我們介紹了隊列Queue的兩個實現(xiàn)類LinkedList和PriorityQueue,LinkedList還實現(xiàn)了雙端隊列接口Deque,Java容器類中還有一個雙端隊列的實現(xiàn)類ArrayDeque,它是基于數(shù)組實現(xiàn)的。
我們知道,一般而言,由于需要移動元素,數(shù)組的插入和刪除效率比較低,但ArrayDeque的效率卻非常高,它是怎么實現(xiàn)的呢?本節(jié)我們就來詳細探討。
我們首先來看ArrayDeque的用法,然后來分析其實現(xiàn)原理,最后總結(jié)分析其特點。
用法
ArrayDeque實現(xiàn)了Deque接口,同LinkedList一樣,它的隊列長度也是沒有限制的,在LinkedList一節(jié)我們介紹過Deque接口,這里簡要回顧一下。
Deque擴展了Queue,有隊列的所有方法,還可以看做棧,有棧的基本方法push/pop/peek,還有明確的操作兩端的方法如addFirst/removeLast等。
ArrayDeque有如下構(gòu)造方法:
public ArrayDeque() public ArrayDeque(