Von Stack zu Deque und ArrayDeque
Das Deque-Interface mit ArrayDeque statt der veralteten Stack-Klasse verwenden.
Code-Vergleich
✕ 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();
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Bessere Abstraktion
Deque bildet sowohl Stack- als auch Queue-Operationen explizit ab.
Weniger Overhead
ArrayDeque vermeidet die veraltete Synchronisierung von Vector.
Flexibler
Dasselbe Interface unterstützt LIFO- und FIFO-Algorithmen.
Alter Ansatz
Stack
Moderner Ansatz
Deque mit ArrayDeque
Seit JDK
6
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Von Stack zu Deque und ArrayDeque
Verfügbar
Verfügbar seit JDK 6 (Dezember 2006)
Wie es funktioniert
Stack erweitert die veraltete synchronisierte Vector-Klasse. Deque bildet Stack-Operationen direkt ab, und ArrayDeque ist die bevorzugte Allzweckimplementierung für LIFO-Verarbeitung im Arbeitsspeicher.
Zugehörige Dokumentation
Beweis