Встречается на собеседованиях • сегодня
Когда испольщовал Dequeue
Deque (Double Ended Queue) — это интерфейс в Java, представляющий двустороннюю очередь. Он позволяет добавлять/удалять элементы как в начало, так и в конец структуры. Основные реализации — `ArrayDeque` (на основе массива) и `LinkedList` (на основе связанного списка).
**Когда использовать:**
1. **Стек (LIFO)** — `push()`/`pop()` эффективнее `Stack` класса.
2. **Очередь (FIFO)** — `offer()`/`poll()` вместо `LinkedList`.
3. **Двусторонние операции** — например, задачи с sliding window или алгоритмы, требующие доступа с обоих концов.
**Пример:**
```java
Deque deque = new ArrayDeque<>();
deque.offerFirst(1); // [1]
deque.offerLast(2); // [1, 2]
int first = deque.pollFirst(); // 1, осталось [2]
```
**Плюсы:**
- `ArrayDeque` быстрее `LinkedList` для большинства операций (меньше накладных расходов).
- Гибкость: замена и стека, и очереди одной структурой.
**Минусы:**
- Нет потокобезопасности (требуется внешняя синхронизация).
- `LinkedList` может быть хуже по производительности при частых вставках/удалениях в середине.
Выбирайте `Deque`, когда нужен быстрый доступ/модификация с обоих концов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы