junior
Сравните интерфейсы Queue и Deque
Queue — интерфейс очереди с дисциплиной FIFO, предоставляющий методы для работы с одним концом (добавление в хвост, извлечение из головы). Deque (Double Ended Queue) расширяет Queue и поддерживает операции с обоих концов.
| Операция | Queue | Deque |
|---|---|---|
| Добавить | offer() / add() | offerFirst(), offerLast() |
| Извлечь | poll() / remove() | pollFirst(), pollLast() |
| Посмотреть | peek() / element() | peekFirst(), peekLast() |
| Режим работы | FIFO | FIFO или LIFO |
| Использование как стек | Нет | push(), pop() |
Реализации Queue и Deque не переопределяют equals() и hashCode() — используются стандартные методы Object, основанные на сравнении ссылок. Основная реализация Deque — ArrayDeque, которая рекомендуется и как очередь, и как стек.
На собеседовании: скажите, что Deque расширяет Queue и добавляет операции с обоих концов. Упомяните, что ArrayDeque — универсальная реализация и для очереди, и для стека.