deque interface

通常称为deck,deque 是 deque。deque 是元素的线性集合,支持在两个端点处元素的插入和移除。 Dequeinterface比StackQueue具有更丰富的抽象数据类型,因为它同时实现了堆栈和队列。 Dequeinterface定义用于访问Deque实例两端的元素的方法。提供了用于插入,删除和检查元素的方法。诸如ArrayDequeLinkedList之类的 预定义类实现Dequeinterface。

请注意,Dequeinterface既可以用作后进先出堆栈,也可以用作先进先出队列。 Dequeinterface中给出的方法分为三个部分:

Insert

addfirstofferFirst方法在Deque实例的开头插入元素。方法addLastofferLastDeque实例的末尾插入元素。当Deque实例的容量受到限制时,首选方法是offerFirstofferLast,因为addFirst如果已满则可能无法引发异常。

Remove

removeFirstpollFirst方法从Deque实例的开头删除元素。 removeLastpollLast方法从末尾删除元素。如果Deque为空,则方法pollFirstpollLast返回null,而如果Deque实例为空,则方法removeFirstremoveLast引发异常。

Retrieve

方法getFirstpeekFirst检索Deque实例的第一个元素。这些方法不会从Deque实例中删除该值。同样,方法getLastpeekLast检索最后一个元素。如果deque实例为空,则方法getFirstgetLast引发异常,而方法peekFirstpeekLast返回NULL

下表总结了 Deque 元素的 12 种插入,删除和重新绑定方法:

Deque Methods

操作类型第一个元素(Deque实例的开始)最后一个元素(Deque实例的结尾)
InsertaddFirst(e)

offerFirst(e)
addLast(e)
offerLast(e)
删除removeFirst()
pollFirst()
removeLast()
pollLast()
检查getFirst()
peekFirst()
getLast()
peekLast()

除了用于插入,删除和检查Deque实例的这些基本方法外,Dequeinterface还具有一些其他 预定义的方法。其中一个是removeFirstOccurence,如果Deque实例中存在指定的元素,则此方法将其删除。如果元素不存在,则Deque实例保持不变。另一个类似的方法是removeLastOccurence;此方法删除Deque实例中指定元素的最后一次出现。这些方法的返回类型为boolean,如果元素存在于Deque实例中,则它们返回true