В этом руководстве мы узнаем об интерфейсе Java Queue и его методах.
QueueИнтерфейс рамок коллекций Java обеспечивает функциональные структуры данных очереди. Расширяет Collectionинтерфейс.
Классы, реализующие очередь
Поскольку Queueэто интерфейс, мы не можем предоставить его прямую реализацию.
Чтобы использовать функциональные возможности Queue, нам нужно использовать классы, которые его реализуют:
- ArrayDeque
- LinkedList
- PriorityQueue

Интерфейсы, расширяющие очередь
QueueИнтерфейс также расширен различными субинтерфейсов:
DequeBlockingQueueBlockingDeque

Работа со структурой данных очереди
В очередях элементы хранятся и доступны по принципу «первым пришел - первым ушел» . То есть элементы добавляются сзади и удаляются спереди .

Как использовать очередь?
В Java мы должны импортировать java.util.Queueпакет, чтобы использовать Queue.
// LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue();
Здесь мы создали объекты animal1, animal2 и animal3 классов LinkedList, ArrayDequeи PriorityQueueсоответственно. Эти объекты могут использовать функции Queueинтерфейса.
Методы очереди
QueueИнтерфейс включает в себя все методы Collectionинтерфейса. Это потому, что Collectionэто супер-интерфейс Queue.
Некоторые из наиболее часто используемых методов Queueинтерфейса:
- add () - вставляет указанный элемент в очередь. Если задача выполнена успешно,
add()возвращаетсяtrue, если нет - выдает исключение. - offer () - вставляет указанный элемент в очередь. Если задача выполнена успешно,
offer()возвращаетсяtrue, если нет - возвращаетсяfalse. - element () - возвращает заголовок очереди. Выдает исключение, если очередь пуста.
- peek () - возвращает заголовок очереди. Возвращает,
nullесли очередь пуста. - remove () - возвращает и удаляет заголовок очереди. Выдает исключение, если очередь пуста.
- poll () - возвращает и удаляет заголовок очереди. Возвращает,
nullесли очередь пуста.
Реализация интерфейса очереди
1. Реализация класса LinkedList
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // offer elements to the Queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Вывод
Очередь: (1, 2, 3) Доступный элемент: 1 Удаленный элемент: 1 Обновленная очередь: (2, 3)
Чтобы узнать больше, посетите Java LinkedList.
2. Реализация класса PriorityQueue
import java.util.Queue; import java.util.PriorityQueue; class Main ( public static void main(String() args) ( // Creating Queue using the PriorityQueue class Queue numbers = new PriorityQueue(); // offer elements to the Queue numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Вывод
Очередь: (1, 5, 2) Доступный элемент: 1 Удаленный элемент: 1 Обновленная очередь: (2, 5)
Чтобы узнать больше, посетите Java PriorityQueue.
В следующих уроках мы подробно узнаем о различных субинтерфейсах Queueинтерфейса и их реализации.








