Ответ
Для реализации стека в Java рекомендуется использовать интерфейс Deque и его реализацию ArrayDeque.
Почему Deque (ArrayDeque)?
- Производительность: Операции
push(),pop()иpeek()выполняются за O(1). - Современная альтернатива: Класс
Stackустарел (с Java 1.0), наследует отVectorи имеет синхронизированные методы, что создает ненужные накладные расходы в однопоточных сценариях. - Чистота API:
Dequeпредоставляет четкий и эффективный API для операций со стеком.
Пример использования:
import java.util.ArrayDeque;
import java.util.Deque;
Deque<Integer> stack = new ArrayDeque<>();
stack.push(10); // Добавить элемент
int topElement = stack.peek(); // Посмотреть верхний элемент (без удаления)
int removedElement = stack.pop(); // Извлечь и удалить верхний элемент