前面我們介紹了隊列Queue的兩個實現(xiàn)類LinkedListPriorityQueue,LinkedList還實現(xiàn)了雙端隊列接口Deque,Java容器類中還有一個雙端隊列的實現(xiàn)類ArrayDeque,它是基于數(shù)組實現(xiàn)的。

我們知道,一般而言,由于需要移動元素,數(shù)組的插入和刪除效率比較低,但ArrayDeque的效率卻非常高,它是怎么實現(xiàn)的呢?本節(jié)我們就來詳細(xì)探討。

我們首先來看ArrayDeque的用法,然后來分析其實現(xiàn)原理,最后總結(jié)分析其特點。

用法

ArrayDeque實現(xiàn)了Deque接口,同LinkedList一樣,它的隊列長度也是沒有限制的,在LinkedList一節(jié)我們介紹過Deque接口,這里簡要回顧一下。

Deque擴(kuò)展了Queue,有隊列的所有方法,還可以看做棧,有棧的基本方法push/pop/peek,還有明確的操作兩端的方法如addFirst/removeLast等。

ArrayDeque有如下構(gòu)造方法:

public ArrayDeque() public ArrayDeque(
        		

網(wǎng)友評論