Collections 入门

从 Stack 迁移到 Deque 和 ArrayDeque

使用 Deque 接口和 ArrayDeque,取代旧式 Stack 类。

✕ Legacy Stack
Stack<String> stack = new Stack<>();
stack.push("task");
String next = stack.pop();
✓ Deque API
Deque<String> stack = new ArrayDeque<>();
stack.push("task");
String next = stack.pop();
发现此代码有问题? 告诉我们。
🎯

更好的抽象

Deque 明确地对栈和队列操作建模。

⚡

更低开销

ArrayDeque 避免了 Vector 的旧式同步。

🧩

更灵活

同一个接口同时支持 LIFO 和 FIFO 算法。

旧方式
Stack
现代方式
使用 ArrayDeque 的 Deque
自 JDK
6
难度
入门
从 Stack 迁移到 Deque 和 ArrayDeque
可用

自 JDK 6 起可用(2006 年 12 月)

Stack 扩展了旧式同步 Vector 类。Deque 直接对栈操作建模,而 ArrayDeque 是内存中 LIFO 工作的首选通用实现。