← Назад к вопросам

Что такое очередь?

1.0 Junior🔥 251 комментариев
#Коллекции#Основы Java

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое очередь?

Очередь (Queue) — это одна из фундаментальных структур данных в информатике и программировании, которая следует принципу FIFO (First In, First Out) — первый вступивший элемент первым выходит. Это означает, что элементы добавляются в конец очереди, а извлекаются из начала, точно как в реальной жизни, когда люди встают в очередь в магазине.

Основные операции очереди:

  1. Enqueue (добавление) — добавить элемент в конец очереди
  2. Dequeue (удаление) — извлечь элемент из начала очереди
  3. Peek (просмотр) — посмотреть первый элемент без его удаления
  4. isEmpty — проверить, пуста ли очередь
  5. 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:

  1. LinkedList — двусвязный список, подходит для очереди
  2. ArrayDeque — массив, более эффективен по памяти
  3. PriorityQueue — очередь с приоритетом (элементы упорядочены по компаратору)
  4. BlockingQueue — потокобезопасная очередь для многопоточности (LinkedBlockingQueue, ArrayBlockingQueue)

Очереди широко используются в многопоточности, обработке задач, реализации алгоритмов поиска в ширину (BFS) и в распределённых системах для асинхронной обработки сообщений.