使用 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
难度
入门
JDK 支持
从 Stack 迁移到 Deque 和 ArrayDeque
可用
自 JDK 6 起可用(2006 年 12 月)
工作原理
Stack 扩展了旧式同步 Vector 类。Deque 直接对栈操作建模,而 ArrayDeque 是内存中 LIFO 工作的首选通用实现。
相关文档
证明