核心原理
Queue / Deque 家族
常见实现:
LinkedList:可当List、Queue、DequeArrayDeque:现代 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。