Интерфейс очереди Java

В этом руководстве мы узнаем об интерфейсе Java Queue и его методах.

QueueИнтерфейс рамок коллекций Java обеспечивает функциональные структуры данных очереди. Расширяет Collectionинтерфейс.

Классы, реализующие очередь

Поскольку Queueэто интерфейс, мы не можем предоставить его прямую реализацию.

Чтобы использовать функциональные возможности Queue, нам нужно использовать классы, которые его реализуют:

  • ArrayDeque
  • LinkedList
  • PriorityQueue

Интерфейсы, расширяющие очередь

QueueИнтерфейс также расширен различными субинтерфейсов:

  • Deque
  • BlockingQueue
  • BlockingDeque

Работа со структурой данных очереди

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

Как использовать очередь?

В 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интерфейса и их реализации.

Интересные статьи...