在電腦科學中, dequeue是指a double-ended queue(雙向佇列),一般簡寫為deque,讀音是 deck)。
Dequeue是一種抽象資料型態,dequeue中的每個元素都可以在佇列中的頭部(左邊)或者在尾部(右邊)的位置進行任何元素的新增移除。
java.util.Deque interface 是 java.util.Queue interface 的一個子類別。
Deque 的運行速度比 Stack 和 LinkedList更快。
以下是有關Deque的等級制度 (Hierarchy)
Deque 界面可以被不同類別的集合實作包括LinkedList 、 ArrayDeque 類。
可以用以下方式宣告與實體化:
Deque deque = new LinkedList<>();
或者
Deque deque = new ArrayDeque<>();
第一
可以修改array的大小
第二
無限制array的長度
第三
禁止Null 的元素
**第四 **
不是 thread-safe.
所以多個thread同時存取是不支持的
add(element):
在尾部加入元素。
addFirst(element):
在頭部加入元素。
addLast(element):
在尾部加入元素。
offer(element):
在尾部加入元素,同時也返回一個boolean值來表示是否成功加入元素。
offerFirst(element):
在頭部加入元素,同時也返回一個boolean值來表示是否成功加入元素。
offerLast(element):
在尾部加入元素,同時也返回一個boolean值來表示是否成功加入元素。
iterator():
返回Deque的所有元素。
descendingIterator():
以相反的排序方式返回Deque的所有元素。
push(element):
在頭部加入元素。
pop(element):
刪除在頭部元素,同時返回被刪除元素。
removeFirst():
刪除在頭部元素。
removeLast():
刪除在尾部元素。
poll():
刪除在頭部元素,或者返回Null值假如是空的Aarray。
pollFirst():
刪除在頭部元素,或者返回Null值假如是空的Aarray。
pollLast():
刪除在尾部元素,或者返回Null值假如是空的Aarray。
peek():
搜索及返回在頭部元素,或者返回Null值假如是空的Aarray。
peekFirst():
搜索及返回在頭部元素,或者返回Null值假如是空的Aarray。
peekLast():
搜索及返回在尾部元素,或者返回Null值假如是空的Aarray。