Od Stack do Deque i ArrayDeque
Używaj interfejsu Deque z ArrayDeque zamiast przestarzałej klasy Stack.
Porównanie kodu
✕ 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();
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Lepsza abstrakcja
Deque jawnie modeluje operacje zarówno stosu, jak i kolejki.
Mniejszy narzut
ArrayDeque nie ponosi kosztu przestarzałej synchronizacji Vector.
Większa elastyczność
Ten sam interfejs obsługuje algorytmy LIFO i FIFO.
Stare podejście
Stack
Nowoczesne podejście
Deque z ArrayDeque
Od JDK
6
Poziom trudności
Początkujący
Wsparcie JDK
Od Stack do Deque i ArrayDeque
Dostępne
Dostępne od JDK 6 (grudzień 2006)
Jak to działa
Stack rozszerza przestarzałą synchronizowaną klasę Vector. Deque bezpośrednio modeluje operacje stosu, a ArrayDeque jest preferowaną implementacją ogólnego przeznaczenia do wykonywania operacji LIFO w pamięci.
Powiązana dokumentacja
Dowód