Deque接口

通常读作deckdeque是双端队列,双端队列是元素的线性集合,支持在两个端点处插入和移除元素,Deque接口是比StackQueue更丰富的抽象数据类型,因为它同时实现堆栈和队列。Deque接口定义了访问Deque实例两端元素的方法,提供了插入、移除和检查元素的方法,ArrayDequeLinkedList等预定义类实现了Deque接口。

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

插入

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

移除

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

检索

方法getFirstpeekFirst检索Deque实例的第一个元素,这些方法不会从Deque实例中删除该值。同样,方法getLastpeekLast检索最后一个元素,如果deque实例为空,则方法getFirstgetLast会抛出异常,而方法peekFirstpeekLast将返回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,如果元素存在于Deque实例中,它们将返回true


上一篇:Queue接口
下一篇:Map接口

博弈
2.5k 声望1.5k 粉丝

态度决定一切