In diesem Tutorial lernen wir die Deque-Oberfläche, ihre Verwendung und ihre Methoden kennen.
Die Deque
Schnittstelle des Java-Sammlungsframeworks bietet die Funktionalität einer Warteschlange mit zwei Enden. Es erweitert die Queue
Schnittstelle.
Arbeiten von Deque
In einer regulären Warteschlange werden Elemente von hinten hinzugefügt und von vorne entfernt. In einer Deque können wir jedoch Elemente sowohl von vorne als auch von hinten einfügen und entfernen .
Klassen, die Deque implementieren
Um die Funktionen der Deque
Schnittstelle nutzen zu können, müssen Klassen verwendet werden, die sie implementieren:
- ArrayDeque
- LinkedList
Wie benutzt man Deque?
In Java müssen wir das java.util.Deque
zu verwendende Paket importieren Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Hier haben wir Objekte animal1 und animal2 der Klassen ArrayDeque bzw. LinkedList erstellt. Diese Objekte können die Funktionen der Deque
Schnittstelle nutzen.
Methoden der Deque
Da Deque
die Queue
Schnittstelle erweitert wird, erbt sie alle Methoden der Warteschlangenschnittstelle.
Neben den in der Queue
Schnittstelle verfügbaren Methoden Deque
enthält die Schnittstelle auch die folgenden Methoden:
- addFirst () - Fügt das angegebene Element am Anfang der Deque hinzu. Löst eine Ausnahme aus, wenn die Deque voll ist.
- addLast () - Fügt das angegebene Element am Ende der Deque hinzu. Löst eine Ausnahme aus, wenn die Deque voll ist.
- OfferFirst () - Fügt das angegebene Element am Anfang der Deque hinzu. Gibt zurück,
false
wenn die Deque voll ist. - OfferLast () - Fügt das angegebene Element am Ende der Deque hinzu. Gibt zurück,
false
wenn die Deque voll ist. - getFirst () - Gibt das erste Element der Deque zurück. Löst eine Ausnahme aus, wenn die Deque leer ist.
- getLast () - Gibt das letzte Element der Deque zurück. Löst eine Ausnahme aus, wenn die Deque leer ist.
- peekFirst () - Gibt das erste Element der Deque zurück. Gibt zurück,
null
wenn die Deque leer ist. - peekLast () - Gibt das letzte Element der Deque zurück. Gibt zurück,
null
wenn die Deque leer ist. - removeFirst () - Gibt das erste Element der Deque zurück und entfernt es. Löst eine Ausnahme aus, wenn die Deque leer ist.
- removeLast () - Gibt das letzte Element der Deque zurück und entfernt es. Löst eine Ausnahme aus, wenn die Deque leer ist.
- pollFirst () - Gibt das erste Element der Deque zurück und entfernt es. Gibt zurück,
null
wenn die Deque leer ist. - pollLast () - Gibt das letzte Element der Deque zurück und entfernt es. Gibt zurück,
null
wenn die Deque leer ist.
Deque als Stack-Datenstruktur
Die Stack
Klasse des Java- Collections
Frameworks stellt die Implementierung des Stacks bereit.
Es wird jedoch empfohlen, Deque
anstelle der Stapelklasse einen Stapel zu verwenden. Dies liegt daran, dass Methoden von Stack
synchronisiert sind.
Hier sind die Methoden, die die Deque
Schnittstelle zum Implementieren des Stapels bereitstellt:
push()
- Fügt zu Beginn der Deque ein Element hinzupop()
- Entfernt ein Element vom Beginn der Dequepeek()
- gibt ein Element vom Beginn der Deque zurück
Implementierung von Deque in der ArrayDeque-Klasse
import java.util.Deque; import java.util.ArrayDeque; class Main ( public static void main(String() args) ( // Creating Deque using the ArrayDeque class Deque numbers = new ArrayDeque(); // add elements to the Deque numbers.offer(1); numbers.offerLast(2); numbers.offerFirst(3); System.out.println("Deque: " + numbers); // Access elements of the Deque int firstElement = numbers.peekFirst(); System.out.println("First Element: " + firstElement); int lastElement = numbers.peekLast(); System.out.println("Last Element: " + lastElement); // Remove elements from the Deque int removedNumber1 = numbers.pollFirst(); System.out.println("Removed First Element: " + removedNumber1); int removedNumber2 = numbers.pollLast(); System.out.println("Removed Last Element: " + removedNumber2); System.out.println("Updated Deque: " + numbers); ) )
Ausgabe
Deque: (3, 1, 2) Erstes Element: 3 Letztes Element: 2 Entferntes erstes Element: 3 Entferntes letztes Element: 2 Aktualisiert Deque: (1)
Weitere Informationen finden Sie unter Java ArrayDeque.