In diesem Tutorial lernen wir die Java Queue-Oberfläche und ihre Methoden kennen.
Die Queue
Schnittstelle des Java-Sammlungsframeworks bietet die Funktionalität der Warteschlangendatenstruktur. Es erweitert die Collection
Schnittstelle.
Klassen, die die Warteschlange implementieren
Da Queue
es sich um eine Schnittstelle handelt, können wir deren direkte Implementierung nicht bereitstellen.
Um die Funktionen von nutzen zu können Queue
, müssen Klassen verwendet werden, die sie implementieren:
- ArrayDeque
- LinkedList
- Prioritätswarteschlange
Schnittstellen, die die Warteschlange erweitern
Die Queue
Schnittstelle wird auch um verschiedene Subschnittstellen erweitert:
Deque
BlockingQueue
BlockingDeque
Arbeiten der Warteschlangendatenstruktur
In Warteschlangen werden Elemente gespeichert und auf First In, First Out- Weise zugegriffen . Das heißt, Elemente werden von hinten hinzugefügt und von vorne entfernt .
Wie benutzt man Queue?
In Java müssen wir das java.util.Queue
Paket importieren , um es verwenden zu können 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();
Hier haben wir Objekte animal1, animal2 und animal3 von Klassen erstellt LinkedList
, ArrayDeque
und PriorityQueue
jeweils. Diese Objekte können die Funktionen der Queue
Schnittstelle nutzen.
Methoden der Warteschlange
Die Queue
Schnittstelle enthält alle Methoden der Collection
Schnittstelle. Es ist, weil Collection
ist die Super-Schnittstelle von Queue
.
Einige der am häufigsten verwendeten Methoden der Queue
Schnittstelle sind:
- add () - Fügt das angegebene Element in die Warteschlange ein. Wenn die Aufgabe erfolgreich ist,
add()
kehrttrue
, wenn nicht sogar wirft es eine Ausnahme. - quote () - Fügt das angegebene Element in die Warteschlange ein. Wenn die Aufgabe erfolgreich ist, wird sie
offer()
zurückgegebentrue
, wenn nicht, wird sie zurückgegebenfalse
. - element () - Gibt den Kopf der Warteschlange zurück. Löst eine Ausnahme aus, wenn die Warteschlange leer ist.
- peek () - Gibt den Kopf der Warteschlange zurück. Gibt zurück,
null
wenn die Warteschlange leer ist. - remove () - Gibt den Kopf der Warteschlange zurück und entfernt ihn. Löst eine Ausnahme aus, wenn die Warteschlange leer ist.
- poll () - Gibt den Kopf der Warteschlange zurück und entfernt ihn. Gibt zurück,
null
wenn die Warteschlange leer ist.
Implementierung der Queue-Schnittstelle
1. Implementieren der LinkedList-Klasse
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); ) )
Ausgabe
Warteschlange: (1, 2, 3) Zugriff auf Element: 1 Entferntes Element: 1 Aktualisierte Warteschlange: (2, 3)
Weitere Informationen finden Sie unter Java LinkedList.
2. Implementieren der PriorityQueue-Klasse
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); ) )
Ausgabe
Warteschlange: (1, 5, 2) Zugriff auf Element: 1 Entferntes Element: 1 Aktualisierte Warteschlange: (2, 5)
Weitere Informationen finden Sie unter Java PriorityQueue.
In den nächsten Tutorials lernen wir die verschiedenen Subschnittstellen der Queue
Schnittstelle und ihre Implementierung im Detail kennen.