deck 接口实现

Deque接口

通常发音为deck,deque是双端队列。双端队列是元素的线性集合,支持在两个端点处插入和移除元素。该Deque接口比两者更丰富的抽象数据类型StackQueue,因为它在同一时间同时实现堆栈和队列。的 Deque界面,定义方法来访问在所述的两端的元件Deque的实例。提供了插入,移除和检查元素的方法。预定义的类喜欢 ArrayDeque并 LinkedList实现Deque接口。

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

addfirstofferFirst方法插入在年初元素Deque实例。方法addLastofferLast插入元素在Deque实例的末尾。当Deque实例的容量受到限制时,首选方法是offerFirstofferLast因为addFirst如果它已满,可能无法抛出异常。

去掉

removeFirstpollFirst方法去除从年初的元素Deque实例。的removeLastpollLast的方法除去从端部元件。方法pollFirst 并pollLast返回null如果Deque为空而方法removeFirstremoveLastDeque实例为空时抛出异常。

取回

方法getFirstpeekFirst检索Deque实例的第一个元素。这些方法不会从Deque实例中删除值。同样,方法getLast 和peekLast检索最后一个元素。这些方法getFirstgetLast是否抛出一个异常 deque情况下是空的,而方法peekFirstpeekLast 回报NULL

下面列出了12种Deque元素的插入,移除和翻新方法:

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实例中指定元素的最后一次出现。这些方法的返回类型是booleantrue如果元素存在于Deque实例中,它们将返回。

猜你喜欢

转载自blog.csdn.net/xiamaocheng/article/details/82288679