Collections Начинающий

Используйте интерфейс 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
Современный подход
Deque с ArrayDeque
Начиная с JDK
6
Сложность
Начинающий
От Stack к Deque и ArrayDeque
Доступно

Доступно начиная с JDK 6 (декабрь 2006)

Stack наследует устаревший синхронизированный класс Vector. Deque непосредственно моделирует операции со стеком, а ArrayDeque является предпочтительной универсальной реализацией для работы в памяти по принципу LIFO.