Deque

Deque发音经常读作Deck, Deque就是一个双向队列。双向队列是一种线性的数据结构,它支持在两端添加或者删除元素。 双向队列是比较栈和队列更丰富的抽象类型,因为它兼有栈和队列的特性。它支持方法有添加、删除和监控元素。预定义的类像ArrayDequeLinkedList都实现了双向队列的接口。

注意Deque接口既可以用作先进后出的栈,也可以用作先进先出的队列。Deque接口里的方法分为下面三大类:

插入
addfirstofferFirst在队头插入元素,addLastofferLast在队尾插入元素。 如果队列的大小是限定的, 推荐优先使用offerFirstofferLast, 因为addfirstaddLast会在队列满的时候抛出异常。

删除
removeFirstpollFirst 从队头移除元素,removeLastpollLast从队尾移除元素。如果队列是空,pollFirstpollLast 会返回空, 但是removeFirstremoveLast会抛出异常。

获取
getFirstpeekFirst 方法获取队列的第一个元素。这些方法不会移除队列中的元素。相应的getLastpeekLast获取队列中最后一个元素。当队列是空的时候, peekFirstpeekLast返回空,但是getFirstgetLast会抛出异常。

下面是这12种方法的详细列表:

操作类型第一个元素(队头)最后一个元素(队尾)
插入addFirst(e),offerFirst(e)addLast(e),offerLast(e)
删除removeFirst(),pollFirst()removeLast(),pollLast()
获取getFirst(),peekFirst()getLast(),peekLast()

除了这些基本的插入、删除和监测方法, Deque还有自己的方法。其中一个就是removeFirstOccurence,这个方法会移除队列第一次出现的指定元素,如果队列中没有出现,队列不会受到任何影响。另外一个相似的方法就是removeLastOccurence,移除队列中最后出现的指定元素。这些方法都返回一个布尔类型,如果返回true证明移除成功。

http://docs.oracle.com/javase/tutorial/collections/interfaces/deque.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值