V tomto tutoriále sa dozvieme o rozhraní Java Queue a jeho metódach.
Queue
Rozhranie zbierok rámca Java poskytuje funkcie dátové štruktúry front. Rozširuje Collection
rozhranie.
Triedy, ktoré implementujú fronty
Pretože toto Queue
je rozhranie, nemôžeme zabezpečiť jeho priamu implementáciu.
Aby sme mohli využívať tieto funkcie Queue
, musíme použiť triedy, ktoré ich implementujú:
- ArrayDeque
- LinkedList
- PriorityQueue
Rozhrania rozširujúce front
Queue
Rozhranie je tiež rozšírená o rôzne podrozhraní:
Deque
BlockingQueue
BlockingDeque
Pracovanie dátovej štruktúry frontu
Vo frontoch sa prvky ukladajú a pristupuje sa k nim spôsobom First In, First Out . To znamená, že prvky sa pridávajú zozadu a odoberajú sa spredu .
Ako používať front?
V prostredí Java musíme java.util.Queue
na použitie importovať balík 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();
Tu sme vytvorili objekty animal1, animal2 a animal3 tried LinkedList
, ArrayDeque
a PriorityQueue
v tomto poradí. Tieto objekty môžu využívať funkcie Queue
rozhrania.
Metódy poradia
Queue
Rozhranie zahŕňa všetky metódy Collection
rozhrania. Je to preto, že Collection
je super rozhraním Queue
.
Niektoré z bežne používaných metód Queue
rozhrania sú:
- add () - Vloží zadaný prvok do poradia. Ak je úloha úspešná,
add()
vráti satrue
, ak nie, vyvolá výnimku. - offer () - Vloží zadaný prvok do poradia. Ak je úloha úspešná,
offer()
vráti satrue
, ak nie, vráti safalse
. - element () - Vráti hlavičku frontu. Ak je rad prázdny, hodí výnimku.
- peek () - Vráti hlavu frontu. Vráti sa,
null
ak je rad prázdny. - remove () - Vráti a odstráni hlavu frontu. Ak je rad prázdny, hodí výnimku.
- poll () - Vráti a odstráni hlavičku frontu. Vráti sa,
null
ak je rad prázdny.
Implementácia frontového rozhrania
1. Implementácia triedy 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); ) )
Výkon
Poradie: (1, 2, 3) Prístup k prvku: 1 Odstránený prvok: 1 Aktualizované poradie: (2, 3)
Ak sa chcete dozvedieť viac, navštívte stránku Java LinkedList.
2. Implementácia triedy 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); ) )
Výkon
Poradie: (1, 5, 2) Prístup k prvku: 1 Odstránený prvok: 1 Aktualizované poradie: (2, 5)
Ak sa chcete dozvedieť viac, navštívte stránku Java PriorityQueue.
V ďalších tutoriáloch sa dozvieme Queue
podrobne rôzne subinterfaces rozhrania a jeho implementáciu.