Назад к вопросам
Middle
75
questionbank

Сравните интерфейсы Queue и Deque.

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Queue представляет собой коллекцию элементов, предназначенную для хранения элементов перед их обработкой. Следует принципам FIFO (First-In, First-Out).

Deque (Double-Ended Queue) — двусторонняя очередь. Поддерживает вставку и удаление элементов как в начале, так и в конце. Объединяет функциональность Queue и Stack.

Основные отличия:

Характеристика Queue Deque
Принцип работы FIFO FIFO (как очередь), LIFO (как стек)
Вставка элементов Только в конец В начало и в конец
Удаление элементов Только из начала Из начала и из конца
Интерфейсы-наследники PriorityQueue, LinkedList, ArrayDeque ArrayDeque, LinkedList

Deque предоставляет более гибкий набор операций для работы с обоими концами коллекции.

// Пример использования Queue
Queue<String> queue = new LinkedList<>();
queue.offer("element1"); // Вставка
queue.offer("element2");
String first = queue.poll(); // Удаление
System.out.println(first); // element1
// Пример использования Deque как очереди
Deque<String> dequeAsQueue = new LinkedList<>();
dequeAsQueue.offer("element1"); // Вставка в конец
dequeAsQueue.offer("element2");
String firstDeque = dequeAsQueue.poll(); // Удаление из начала
System.out.println(firstDeque); // element1
// Пример использования Deque как стека
Deque<String> dequeAsStack = new LinkedList<>();
dequeAsStack.push("element1"); // Вставка в начало
dequeAsStack.push("element2");
String topDeque = dequeAsStack.pop(); // Удаление из начала
System.out.println(topDeque); // element2