В този урок ще научим за интерфейса на Java Queue и неговите методи.
В Queue
интерфейса на колекции рамките на Java предоставя функционалност на структурата на опашка данни. Той разширява Collection
интерфейса.
Класове, които прилагат опашка
Тъй Queue
като интерфейсът е, не можем да осигурим директното му изпълнение.
За да използваме функционалностите на Queue
, трябва да използваме класове, които го реализират:
- ArrayDeque
- LinkedList
- PriorityQueue
Интерфейси, които разширяват Queue
В Queue
интерфейса също се удължава с различни subinterfaces:
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
интерфейса и неговото изпълнение.