Collections 初級

レガシーなStackクラスの代わりに、DequeインターフェースとArrayDequeを使用する。

✕ 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処理に推奨される汎用実装です。