Queue 与 Deque

上一篇:Set · 下一篇:HashMap

核心原理#

Queue / Deque 家族#

常见实现:

  • LinkedList:可当 ListQueueDeque
  • ArrayDeque:现代 Java 写队列、栈的常用选择
  • PriorityQueue:按优先级出队,不是 FIFO
Deque<String> deque = new ArrayDeque<>();
deque.addFirst("head");
deque.addLast("tail");
System.out.println(deque.removeFirst());

普通队列或栈时,ArrayDeque 通常比 Stack 更合适Stack 继承老 Vector)。

Queue<String> queue = new LinkedList<>();
queue.offer("task-1");
System.out.println(queue.poll());

面向接口声明#

Queue<String> queue = new LinkedList<>();
Deque<String> stack = new ArrayDeque<>();

选型小结#

场景实现
普通 FIFO 队列 / 栈ArrayDeque
需要优先级PriorityQueue
同时要 List 能力LinkedList

一句话总结#

队列和栈优先 ArrayDeque;需要按优先级处理再用 PriorityQueue

文章目录

文章目录