Java 双端队列 学习笔记

更多 Java 集合类方面的文章,请参见文集《Java 集合类》


Deque 接口是 double ended queue 的缩写,即双端队列,支持在队列的两端插入和删除元素,继承 Queue接口。
public interface Deque extends Queue

Deque 的 12 种方法总结如下:

  • 插入:
    • 如果操作失败则抛出异常
      • void addFirst(Object e)
      • void addLast(Object e)
    • 如果操作失败则返回一个特殊值(nullfalse)
      • boolean offerFirst(Object e)
      • boolean offerLast(Object e);
  • 删除:
    • 如果操作失败则抛出异常
      • Object removeFirst()
      • Object removeLast()
    • 如果操作失败则返回一个特殊值(nullfalse)
      • Object pollFirst()
      • Object pollLast()
  • 获取:
    • 如果操作失败则抛出异常
      • Object getFirst()
      • Object getLast()
    • 如果操作失败则返回一个特殊值(nullfalse)
      • Object peekFirst()
      • Object peekLast()

DequeList 不同,该接口不支持下标访问元素。Deque 的实现并不严格要求禁止插入元素 null,但强烈鼓励不插入 null。任何 Deque 的实现都强烈鼓励不要插入 null,因为 null 是多种方法作为一种特殊返回值来表示 Deque 为空。

ArrayDequeLinkedList 类是 Deque 接口的两个实现类:

  • ArrayDeque 类由数组支持。适合当作堆栈使用。
  • LinkedList 类由链表支持。适合当作FIFO队列使用。

示例

public static void main(String[] args) {
    Deque deque = new LinkedList<>();
    deque.addLast(1);
    deque.offerLast(2);
    deque.offerLast(3);
    deque.offerLast(4);

    System.out.println(deque); // [1, 2, 3, 4]

    while (deque.peekFirst() != null) {
        System.out.println(deque.peekFirst());
        deque.removeFirst();
    }
}

引用:
Java 双端队列

你可能感兴趣的:(Java 双端队列 学习笔记)