Java 源码 - java.util.Deque

248 阅读1分钟

Deque 接口继承自 Queue 接口,可以将 Deque 理解为双端队列 和栈(Stack)的组合。一般的队列是从尾部插入元素、头部移除元素;而双端队列则
可以分别从两端插入元素、两端移除元素。

1. 方法

Deque 作为双端队列,其定义的方法可以归纳如下:

由于 Deque 继承了 Queue 接口,因此 Queue 的方法在 Deque 中也有体现,而且与 Deque 定义的方法存在如下对应关系:

此外,Deque 还可以作为栈,有关栈的操作和在 Deque 中的对应方法如下:

Deque 还有几个独有的方法:

  1. removeFirstOccurrence():从该双端队列中移除第一次出现的指定元素;
  2. removeLastOccurrence():从该双端队列中移除最后一次出现的指定元素;
  3. descendingIterator():以相反顺序返回此双端队列中元素的迭代器,可以认为是 iterator() 反过来。

2. 小结

  1. Queue 和 Deque 都可用于表示队列;

  2. Queue 表示基本的队列,包含队列的入队和出队操作;

  3. Deque 继承自 Queue,除了基本的队列操作,Deque 是一个"双端队列",可以认为它有两个头、两个尾;而且,Deque 还可以作为一个栈。