Ответ
Очередь (Queue) — это абстрактная структура данных, работающая по принципу FIFO (First In, First Out): первый добавленный элемент будет первым извлеченным.
Ключевые операции:
- Добавление (Enqueue): Элемент помещается в конец очереди.
- Удаление (Dequeue): Элемент извлекается из начала очереди.
Реализация в Java:
Интерфейс java.util.Queue расширяет Collection. Основные реализации:
LinkedList— двусторонняя очередь, также реализуетDeque.ArrayDeque— эффективная реализация на массиве.PriorityQueue— очередь с приоритетом (FIFO не гарантируется).
| Основные методы: | Метод | Генерирует исключение? | Возвращает null/false? |
Действие |
|---|---|---|---|---|
add(e) / offer(e) |
IllegalStateException |
false (только offer) |
Добавляет элемент в конец. | |
remove() / poll() |
NoSuchElementException |
null (только poll) |
Удаляет и возвращает элемент из начала. | |
element() / peek() |
NoSuchElementException |
null (только peek) |
Возвращает элемент из начала без удаления. |
Пример использования LinkedList как очереди:
Queue<String> queue = new LinkedList<>();
queue.offer("First");
queue.offer("Second");
queue.offer("Third");
System.out.println(queue.poll()); // "First"
System.out.println(queue.peek()); // "Second"
System.out.println(queue.poll()); // "Second"
Области применения: управление задачами (например, в пуле потоков), обработка запросов, алгоритмы обхода графа (BFS).