Реализация связанного списка очереди Java: пошаговое руководство

Вот реализация очереди Java с использованием связанного списка:

import java.util.LinkedList;
public class QueueLinkedList<T> {
    private LinkedList<T> queue;
    public QueueLinkedList() {
        queue = new LinkedList<>();
    }
    public void enqueue(T element) {
        queue.addLast(element);
    }
    public T dequeue() {
        if (isEmpty()) {
            throw new IllegalStateException("Queue is empty");
        }
        return queue.removeFirst();
    }
    public T peek() {
        if (isEmpty()) {
            throw new IllegalStateException("Queue is empty");
        }
        return queue.getFirst();
    }
    public int size() {
        return queue.size();
    }
    public boolean isEmpty() {
        return queue.isEmpty();
    }
    public void clear() {
        queue.clear();
    }
}

В этой реализации LinkedListиспользуется для хранения элементов очереди. Метод enqueueдобавляет элемент в конец списка, а метод dequeueудаляет и возвращает первый элемент. Метод peekвозвращает первый элемент, не удаляя его. Метод sizeвозвращает количество элементов в очереди, а метод isEmptyпроверяет, пуста ли очередь. Метод clearудаляет все элементы из очереди.