I denne vejledning lærer vi om Java-køgrænsefladen og dens metoder.
Den Queue
grænsefladen af Java kollektioner rammer giver funktionaliteten af køen datastruktur. Det udvider Collection
grænsefladen.
Klasser, der implementerer kø
Da det Queue
er en grænseflade, kan vi ikke levere den direkte implementering af det.
For at kunne bruge funktionerne i Queue
er vi nødt til at bruge klasser, der implementerer det:
- ArrayDeque
- LinkedList
- PriorityQueue
Grænseflader, der udvider køen
Den Queue
interface er også udvidet med forskellige subinterfaces:
Deque
BlockingQueue
BlockingDeque
Arbejde med kødatastruktur
I køer gemmes og få adgang til elementer på First In, First Out måde. Det vil sige, elementer tilføjes bagfra og fjernes forfra .
Hvordan bruges kø?
I Java skal vi importere java.util.Queue
pakken for at kunne bruge den 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();
Her har vi skabt objekter animal1, animal2 og animal3 af klasser LinkedList
, ArrayDeque
og PriorityQueue
hhv. Disse objekter kan bruge funktionerne i Queue
grænsefladen.
Metoder til kø
Den Queue
grænseflade omfatter alle fremgangsmåderne ifølge Collection
grænsefladen. Det er, fordi det Collection
er supergrænsefladen til Queue
.
Nogle af de almindeligt anvendte metoder til Queue
grænsefladen er:
- add () - Indsætter det angivne element i køen. Hvis opgaven er vellykket,
add()
vender den tilbagetrue
, hvis ikke, giver den en undtagelse. - offer () - Indsætter det angivne element i køen. Hvis opgaven er vellykket,
offer()
returnerer dentrue
, hvis ikke den returnererfalse
. - element () - Returnerer køens hoved. Kaster en undtagelse, hvis køen er tom.
- peek () - Returnerer køens hoved. Returnerer,
null
hvis køen er tom. - remove () - Returnerer og fjerner køens hoved. Kaster en undtagelse, hvis køen er tom.
- afstemning () - Returnerer og fjerner køens hoved. Returnerer,
null
hvis køen er tom.
Implementering af køgrænsefladen
1. Implementering af LinkedList-klassen
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); ) )
Produktion
Kø: (1, 2, 3) Element, der er adgang til: 1 Fjernet element: 1 Opdateret kø: (2, 3)
Hvis du vil vide mere, skal du besøge Java LinkedList.
2. Implementering af PriorityQueue-klassen
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); ) )
Produktion
Kø: (1, 5, 2) Tilgængeligt element: 1 Fjernet element: 1 Opdateret kø: (2, 5)
For at lære mere, besøg Java PriorityQueue.
I de næste selvstudier lærer vi om forskellige undergrænseflader af Queue
grænsefladen og dens implementering i detaljer.