English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden wir die Java Queue-Schnittstelle und ihre Methoden lernen.
Die Queue-Schnittstelle der Java Collection-Framework bietet die Funktionen der Queue-Datenstruktur. Sie erbt die Collection-Schnittstelle.
Da Queue eine Schnittstelle ist, können wir keine direkte Implementierung bereitstellen.
Um die Funktionen von Queue zu verwenden, müssen wir die Klasse verwenden, die sie implementiert:
Die Queue-Schnittstelle kann von verschiedenen Unterinterfaces vererbt werden:
Deque
BlockingQueue
BlockingDeque
In der Warteschlange, mitFirst In First OutArt und Weise speichern und auf Elemente zugreifen. Das bedeutet also,Elemente von hinten hinzufügen, von vorne entfernen.
In Java müssen Sie das Paket java.util.Queue importieren, um Queue zu verwenden.
// Verwenden Sie LinkedList zum Erstellen Queue<String> animal1 = new LinkedList<>(); // mit ArrayDeque erstellen Queue<String> animal2 = new ArrayDeque<>(); // mit PriorityQueue erstellen Queue<String> animal 3 = new PriorityQueue<>();
Hier haben wir separate Objekte der Klassen LinkedList, ArrayDeque und PriorityQueue für Animal erstellt1und Animal2und Animal3. Diese Objekte können die Funktionen des Queue-Interfaces nutzen.
Das Queue-Interface enthält alle Methoden des Collection-Interfaces. Dies liegt daran, dass Collection das Super-Interface von Queue ist.
Einige der häufig verwendeten Methoden des Queue-Interfaces sind:
add() - Einfügen des angegebenen Elements in die Warteschlange. Gibt add() bei Erfolg true zurück, sonst wird eine Ausnahme ausgelöst.
offer() - Einfügen des angegebenen Elements in die Warteschlange. Gibt offer() bei Erfolg true zurück, sonst false.
element() - Rückgabe des Elements an der Spitze der Warteschlange. Wenn die Warteschlange leer ist, wird eine Ausnahme ausgelöst.
peek() - Rückgabe des Elements an der Spitze der Warteschlange. Wenn die Warteschlange leer ist, wird null zurückgegeben.
remove() - Rückgabe und Entfernung des Elements an der Spitze der Warteschlange. Wenn die Warteschlange leer ist, wird eine Ausnahme ausgelöst.
poll() - Rückgabe und Entfernung des Elements an der Spitze der Warteschlange. Wenn die Warteschlange leer ist, wird null zurückgegeben.
1. Implementierung der Klasse LinkedList
import java.util.Queue; import java.util.LinkedList; class Main { public static void main(String[] args) { // Eine Warteschlange mit der Klasse LinkedList erstellen Queue<Integer> numbers = new LinkedList<>(); //Element hinzufügen zur Warteschlange numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Warteschlange: " + numbers); // Elemente der Warteschlange Queue abrufen int accessedNumber = numbers.peek(); System.out.println("Gefragtes Element: "); + accessedNumber); //Element aus der Warteschlange Queue int removedNumber = numbers.poll(); System.out.println("Gelöschtes Element: "); + removedNumber); System.out.println("Aktualisierte Queue: "); + numbers); } }
Ausgabeergebnis
Queue: [1, 2, 3] Elemente abrufen: 1 Element löschen: 1 Aktualisierte Queue: [2, 3]
Für weitere Informationen besuchen Sie bitteJava LinkedList.
2. Implementierung der Klasse PriorityQueue
import java.util.Queue; import java.util.PriorityQueue; class Main { public static void main(String[] args) { // Eine Warteschlange mit der Klasse PriorityQueue erstellen Queue<Integer> numbers = new PriorityQueue<>(); //Element hinzufügen zur Warteschlange numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Warteschlange: " + numbers); //Element der Queue aufrufen int accessedNumber = numbers.peek(); System.out.println("Gefragtes Element: "); + accessedNumber); //Element aus Queue löschen int removedNumber = numbers.poll(); System.out.println("Gelöschtes Element: "); + removedNumber); System.out.println("Aktualisierte Queue: "); + numbers); } }
Ausgabeergebnis
Queue: [1, 5, 2] Element aufrufen: 1 Element löschen: 1 Aktualisierte Queue: [2, 5]
Für weitere Informationen besuchen Sie bitteJava PriorityQueue.
In den kommenden Tutorials werden wir die verschiedenen Unterinterfaces und Implementierungen der Queue-Schnittstelle im Detail kennenlernen.