Дисциплина обслуживания FIFO (First-In-First-Out) означает, что первый элемент, добавленный в коллекцию, будет первым, который будет удален из коллекции. Эта дисциплина обслуживания реализуется в очередях.
Коллекция java.util.Queue представляет собой интерфейс для работы с очередью и реализует дисциплину обслуживания FIFO. Она имеет несколько реализаций, таких как:
- java.util.LinkedList: двунаправленный связный список, который реализует интерфейсы List и Queue.
- java.util.ArrayDeque: двусторонняя очередь на основе массива, которая также реализует интерфейсы List и Queue.
- java.util.concurrent.LinkedBlockingQueue: неблокирующая очередь на основе связного списка.
- java.util.concurrent.ArrayBlockingQueue: блокирующая очередь на основе массива, которая имеет фиксированный размер. Пример использования интерфейса Queue:
Queue<String> queue = new LinkedList<>();
queue.offer("first");
queue.offer("second");
queue.offer("third");
String firstElement = queue.poll(); // "first"
String secondElement = queue.poll(); // "second"
String thirdElement = queue.poll(); // "third"
В этом примере мы создаем объект типа LinkedList, который реализует интерфейс Queue. Затем мы добавляем три элемента в очередь при помощи метода offer(). Метод poll() удаляет и возвращает первый элемент в очереди. В результате, если мы выведем значения переменных firstElement, secondElement и thirdElement, то увидим значения "first", "second" и "third", соответственно.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov