Deque接口
通常发音为deck
,deque是双端队列。双端队列是元素的线性集合,支持在两个端点处插入和移除元素。该Deque
接口比两者更丰富的抽象数据类型Stack
和Queue
,因为它在同一时间同时实现堆栈和队列。的 Deque
界面,定义方法来访问在所述的两端的元件Deque
的实例。提供了插入,移除和检查元素的方法。预定义的类喜欢 ArrayDeque
并 LinkedList
实现Deque
接口。
请注意,该Deque
接口既可以用作后进先出堆栈,也可以用作先进先出队列。Deque
界面中给出的方法分为三个部分:
插
该addfirst
和offerFirst
方法插入在年初元素Deque
实例。方法addLast
和offerLast
插入元素在Deque
实例的末尾。当Deque
实例的容量受到限制时,首选方法是offerFirst
,offerLast
因为addFirst
如果它已满,可能无法抛出异常。
去掉
该removeFirst
和pollFirst
方法去除从年初的元素Deque
实例。的removeLast
和pollLast
的方法除去从端部元件。方法pollFirst
并pollLast
返回null
如果Deque
为空而方法removeFirst
并removeLast
在Deque
实例为空时抛出异常。
取回
方法getFirst
并peekFirst
检索Deque
实例的第一个元素。这些方法不会从Deque
实例中删除值。同样,方法getLast
和peekLast
检索最后一个元素。这些方法getFirst
和getLast
是否抛出一个异常 deque
情况下是空的,而方法peekFirst
和peekLast
回报NULL
。
下面列出了12种Deque元素的插入,移除和翻新方法:
操作类型 | 第一个元素(Deque 实例的开头) |
最后一个元素(Deque 实例结束) |
---|---|---|
插 | addFirst(e) offerFirst(e) |
addLast(e) offerLast(e) |
去掉 | removeFirst() pollFirst() |
removeLast() pollLast() |
检查 | getFirst() peekFirst() |
getLast() peekLast() |
除了插入,删除和检查Deque
实例的这些基本方法之外,该Deque
接口还具有一些更预定义的方法。其中之一是removeFirstOccurence
,如果指定元素存在于Deque
实例中,则此方法将删除指定元素的第一个出现。如果元素不存在,则Deque
实例保持不变。另一种类似的方法是removeLastOccurence
; 此方法删除Deque
实例中指定元素的最后一次出现。这些方法的返回类型是boolean
,true
如果元素存在于Deque
实例中,它们将返回。