Ein Stapel im Computer ist eine Last-in_First-Out (LIFO) -Listen-Datenstruktur. Dies bedeutet, ein neues Element hinzuzufügen, das Element wird an die Vorderseite der Liste gedrückt. und um ein Element zu entfernen, steigt das Element von der Vorderseite der Liste heraus. Das vordere Element kann auch angeregt werden, was bedeutet, es zu lesen, aber nicht zu entfernen.
Der Name "Deque" ist die Kurzform für "Doppeltege-Warteschlange", ausgesprochen "Deck". Das Deque ist ein FIFO- und eine LIFO -Listendatenstruktur in Java. Nun, auch in Java ist das Deque eine Schnittstelle, aus der Klassen implementiert werden können. Java hat bereits die folgenden Klassen implementiert: Arraydeque, ConcurrentLinkedDeque, Linked BlockingDeque, LinkedList. Die Arraydeque -Klasse wurde ausgewählt, um in diesem Artikel untersucht zu werden.
Im Folgenden finden Sie Java Arraydeque entsprechende Methoden für die Warteschlange:
Warteschlange | Arraydeque |
---|---|
Enqueue | hinzufügen |
Dequeue | entfernen |
spähen | spähen |
Im Folgenden finden Sie Java Arraydeque entsprechende Methoden für Stack:
Stapel | Arraydeque |
---|---|
drücken | drücken |
Pop | Pop |
spähen | spähen |
Hinweis: Die Peek () -Methode ist für beide Verhaltensweisen gleich. Außerdem sind remove () und pop () sehr ähnlich; Sie werden unten erklärt.
Bau einer Arraydeque
Die Arraydeque -Klasse befindet sich in der Java.Util.* Paket, das importiert werden muss. Es hat drei Konstruktoren, von denen zwei hier erklärt werden.
öffentliche Arraydeque ()
Dadurch wird ein leeres Deque erstellt, wie das folgende Codesegment zeigt:
Fünf Elemente wurden hinzugefügt. Der Name des Deque hier ist, DQ.
Öffentliche Arraydeque (Sammlung C)
Dieser überladene Konstruktor erzeugt ein Deque aus einem anderen Deque. Das folgende Codesegment zeigt dies:
DQ1 wurde aus DQ erstellt.
Methoden der Arraydeque -Klasse
öffentlicher Boolescher Add (e e)
Dies ist das Äquivalent von Enqueue. Es fügt ein Element am Ende des Deque hinzu. Das folgende Programm zeigt dies:
öffentliche int size ()
Dies gibt die Größe (Länge) des Deque zurück. Das folgende Programm zeigt dies:
Der Ausgang ist 5.
öffentlich e entfernen ()
Dies ist das Äquivalent von Dequeue. Es entfernt ein Element von der Vorderseite der Liste. Das folgende Programm zeigt dies:
Die Ausgabe ist:
F g h i jEin FIFO -Verhalten zeigen.
öffentlich e peek ()
Dies liest das Element vor dem Deque, ohne es zu entfernen. Das folgende Programm zeigt dies:
Die Ausgabe ist:
F f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ab ein fest ab gefkochten)Dies zeigt an, dass nichts entfernt wurde und das erste Element gerade fünf Mal gelesen wurde.
Öffentliche Leere (e e)
Dies fügt der Vorderseite des Deque ein Element hinzu. Das folgende Programm zeigt dies:
Die Ausgabe ist:
J i h g fEin Lebensverhalten zeigen.
öffentlich e pop ()
Dies entfernt und gibt das erste Element des Deque zurück und gibt zurück. Das folgende Programm zeigt dies:
Die Ausgabe ist:
J i h g fEin Lebensverhalten zeigen.
Öffentliche Leere für den Verbraucher (Verbraucheraktionen)
Mit dieser Methode können Sie auf jedes Element im Deque zugreifen. Das folgende Programm druckt alle Elemente im Deque: Drucken Sie es aus:
Die Ausgabe ist:
J i h g fElement ist eine Dummy -Variable, die jedes Element im Deque darstellt. Beachten Sie, wie es verwendet wurde. Beachten Sie die Verwendung des Pfeiloperators, -> . Die Iteration wurde in umgekehrter Reihenfolge durchgeführt.
Iterator Iterator ()
Dies gibt einen Iterator zurück, der verwendet werden kann, um ein Element innerhalb des Deque zu entfernen. Diese Aktion dauert jedoch länger, als ein Element vorne oder hinten des Deque zu entfernen. Die folgende Erklärung würde den Iterator für Charaktere eines Deque zurückgeben.
Wo Iter das Iteratorobjekt ist und DQ das Deque -Objekt ist.
Der Iterator hat die folgenden Methoden:
boolean hasNext (): Gibt wahr, wenn die Iteration mehr Elemente hat.
E Next (): Gibt das nächste Element in der Iteration zurück.
Standard void remove (): Entfernt aus der Liste, das letzte Element, das von diesem Iterator zurückgegeben wurde (Weiter).
Beachten Sie, dass es keine Methode gibt, um ein Element in den Deque einzufügen.
Entfernen eines Elements innerhalb von Deque
Das folgende Programm beseitigt 'H' in der Mitte der Deque -Liste: F, G, H, I, J:
Java importieren.Util.*;Die Ausgabe ist:
J i g fBeachten Sie, dass nächstes () dreimal angerufen werden musste.
Abschluss
In Java ist das Deque sowohl eine FIFO- als auch eine LIFO -Sammlung. Deque in Java ist tatsächlich eine Schnittstelle, aus der eine Klasse implementiert werden muss, bevor der Deque verwendet werden kann. Glücklicherweise hat Java bereits die folgenden Deque -implementierten Klassen: Arraydeque, ConcurrentLinkedDeque, LinkedBlockingDeque, LinkedList. Die Operation für Arraydeque wurde oben erklärt.