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