28-Deque

2020-02-04  本文已影响0人  鹏程1995

类介绍

类定位

Deque这个类的全称为Double End Queue,即这个队列可以双向出入队。这个类并不是多线程安全的。

类继承关系分析

Deque也是Queue的一个子类。直接上idea截图。

1.png

所以,在接下来的介绍中,我们主要介绍Deque中在Queue上扩展的新的方法,对烂大街的方法不再介绍。

类使用场景

双向队列:

  1. 用来存储数据,这也算是一项基本的数据结构了吧(但是貌似没怎么用过)
  2. 用来模仿Stack(但是已经有了Stack,你还要上天吗)

所以,貌似没什么非用不可的场景,平时集合类一般用List,Map就够了。。。。。。

类注意事项

没啥,老一套。

这个类不限制空值,但是却提供了返回特殊值的操作方法。所以个人建议还是限制一下,不要存空值了。

源码介绍

方法归类

队的基本操作,两类:

  1. 有问题抛异常
  2. 有问题返回特殊值

这里只是分为了头尾的操作。

头尾方法总结

头部操作

操作 抛异常 返回特殊值 新方法 老方法
进队列 addFirst(e) offerFirst(e) push(e)
出队列 removeFirst() pollFirst() pop() remove(),poll()
取队头 getFirst() peekFirst() element(),peek()

尾部操作

操作 抛异常 返回特殊值 新方法 老方法
进队列 addLast(e) offerLast(e) add(E e),offer(E e)
出队列 removeLast() pollLast()
取队尾 getLast() peekLast()

其他方法总结

boolean removeFirstOccurrence(Object o);

删除掉第一次出现的

boolean removeLastOccurrence(Object o);

删除掉最后一次出现的

Iterator<E> iterator();

用一个Iterator返回集合

Iterator<E> descendingIterator();

用一个Iterator返回集合,逆序

上一篇 下一篇

猜你喜欢

热点阅读