Ответ
Да, класс java.util.LinkedList реализует интерфейс Queue. Это происходит потому, что LinkedList также реализует интерфейс Deque (двусторонняя очередь), который, в свою очередь, расширяет интерфейс Queue.
Иерархия: LinkedList → Deque → Queue.
Пример использования LinkedList в качестве очереди (FIFO):
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
// Создание очереди на основе LinkedList
Queue<String> queue = new LinkedList<>();
// Добавление элементов в конец очереди
queue.offer("First");
queue.offer("Second");
queue.offer("Third");
// Просмотр головного элемента без удаления
System.out.println("Head of queue: " + queue.peek()); // First
// Извлечение элементов из начала очереди
while (!queue.isEmpty()) {
System.out.println("Polled: " + queue.poll());
}
// Вывод:
// Polled: First
// Polled: Second
// Polled: Third
}
}
Основные методы Queue, доступные в LinkedList:
add(e)/offer(e)— добавляют элемент в конец очереди.remove()/poll()— удаляют и возвращают элемент из начала очереди.element()/peek()— возвращают элемент из начала очереди без удаления.
Поскольку LinkedList также является Deque, его можно использовать как стек (LIFO) или двустороннюю очередь.