Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое очередь?
Очередь (Queue) — это одна из фундаментальных структур данных в информатике и программировании, которая следует принципу FIFO (First In, First Out) — первый вступивший элемент первым выходит. Это означает, что элементы добавляются в конец очереди, а извлекаются из начала, точно как в реальной жизни, когда люди встают в очередь в магазине.
Основные операции очереди:
- Enqueue (добавление) — добавить элемент в конец очереди
- Dequeue (удаление) — извлечь элемент из начала очереди
- Peek (просмотр) — посмотреть первый элемент без его удаления
- isEmpty — проверить, пуста ли очередь
- Size — получить количество элементов
Реализация на Java:
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<>();
// Добавление элементов
queue.offer(10);
queue.offer(20);
queue.offer(30);
// Просмотр первого элемента
System.out.println("Peek: " + queue.peek()); // 10
// Удаление элемента
System.out.println("Poll: " + queue.poll()); // 10
System.out.println("Poll: " + queue.poll()); // 20
// Размер
System.out.println("Size: " + queue.size()); // 1
// Проверка пустоты
System.out.println("Empty: " + queue.isEmpty()); // false
}
}
Методы очереди в Java:
- offer() / add() — добавить элемент. offer() возвращает false при переполнении (для ограниченных очередей), add() выбросит исключение
- poll() / remove() — извлечь элемент. poll() возвращает null, если очередь пуста, remove() выбросит исключение
- peek() / element() — получить первый элемент. peek() возвращает null, element() выбросит исключение
Типы очередей в Java:
- LinkedList — двусвязный список, подходит для очереди
- ArrayDeque — массив, более эффективен по памяти
- PriorityQueue — очередь с приоритетом (элементы упорядочены по компаратору)
- BlockingQueue — потокобезопасная очередь для многопоточности (LinkedBlockingQueue, ArrayBlockingQueue)
Очереди широко используются в многопоточности, обработке задач, реализации алгоритмов поиска в ширину (BFS) и в распределённых системах для асинхронной обработки сообщений.