Eine Warteschlange (engl. Queue) ist eine Datenstruktur, in der Elemente nach dem Warteschlangenprinzip (auch FIFO-Prinzip) eingefügt und gelöscht werden.
Erklärung
Eine Warteschlange (engl. Queue) ist eine Datenstruktur, in der Elemente nach dem Warteschlangenprinzip (auch First In First Out-Prinzip) eingefügt und gelöscht werden.
Anders als bei der Datenstruktur Liste kann nur auf das erste Element zugegriffen und an das letzte Element ein neues hinzugefügt werden.
Deklaration
Queue
ist ein Teil des Packages Java.util
und muss importiert werden, damit du sie verwenden kannst.
Dafür kannst du entweder über Queue
hovern (mit der Maus über das Wort gehen) und import class auswählen oder über deine Klasse import java.util.Queue;
schreiben. Da die Queue auf einer LinkedList
basiert, muss auch diese mit dem Befehl import java.util.LinkedList;
importiert werden.
Du kannst auch direkt das gesamte util
-Paket importieren, dafür verwendest du einfach den Befehl import java.util.*;
:
Besuche die App, um alle Inhalte zu sehen!
Nun muss deine Queue noch deklariert werden:
Besuche die App, um alle Inhalte zu sehen!
Dabei wird zuerst der Datentyp angegeben. Es soll sich hier um eine Queue handeln, in der int-Werte gespeichert werden, daher schreibst du Queue<Integer>
. Du kannst nicht int
als Datentyp verwenden, da in den util
-Paketen keine primitiven Datentypen verwendet werden können. Daher musst du auf Integer
zurückgreifen.
Hinter Queue <Integer>
folgt der Name deiner Queue, hier also queue
.
Hinter einem Gleichheitszeichen steht das Keyword new
und die Art der Queue, also LinkedList
.
Dahinter folgt noch einmal in spitzen Klammern der Datentyp, der gespeichert werden soll, also wieder Integer
.
Am Ende schreibst du runde Klammern und natürlich wie immer ein Semikolon.
Operationen
Dank des util
-Pakets, welches du dir importiert hast, stehen dir nicht nur die darin enthaltenen Datenstrukturen, sondern auch ihre Operationen zur Verfügung. Das ist super praktisch, da du dadurch diese nicht selbst implementieren musst!
Die wichtigsten Operationen einer Queue in Java sind dabei:
add(element)
poll()
peek()
isEmpty()
contains(element)
size()
add(element)
fügt das neue Element, welches in den runden Klammern übergeben wird, an das Ende der Queue an.
poll()
wird verwendet, um das erste Element in der Queue zu entfernen.
peek()
hingegen gibt nur das erste Element aus, ohne es aus der Queue zu löschen.
isEmpty()
überprüft, ob die Queue leer ist (true
) oder nicht (false
).
contains(element)
wird zu true
ausgewertet, wenn das in den runden Klammern übergebene Element in der Queue enthalten ist. Ansonsten wird es zu false
ausgewertet.
size()
gibt die Größe der Queue aus.
Im folgenden Beispiel-Code sind nochmal alle vorgestellten Operationen dargestellt:
Besuche die App, um alle Inhalte zu sehen!
Beispiel
Jan, Nicole und Jeremiah sind auf ihrem Campingausflug. Da sie sich nicht genug Essen eingepackt haben, gehen sie nun mit ihrer Einkaufsliste einkaufen. Sobald sie alles von der Liste abgehakt haben, stellen sie sich an die Schlange an der Kasse 1 an. Dort stehen jedoch bereits drei Leute: Ursel, Joffrey und Chloé:
Besuche die App, um alle Inhalte zu sehen!
Jan, Nicole und Jeremiah beschließen sich trotzdem an diese Kasse anzustellen, da alle anderen noch voller sind:
Besuche die App, um alle Inhalte zu sehen!
Kaum stellen sie sich an, wird Ursel auch schon bedient und verlässt anschließend die Kasse:
Besuche die App, um alle Inhalte zu sehen!
Der Kassierer scheint wohl zu denken, er hätte eine gute Freundin von ihm in der Schlange entdeckt. Daher sucht er die Schlange nach ihr ab:
Besuche die App, um alle Inhalte zu sehen!
Da Chloé hinter Joffrey steht, bedient der Kassierer schnell Joffrey um mit Chloé noch gemütlich quatschen zu können.
Besuche die App, um alle Inhalte zu sehen!
Jan denkt sich nur im Stillen: „War klar, dass wir uns wieder an die beste Schlange angestellt haben“.
Nachdem endlich auch Chloé fertig mit bezahlen ist,
Besuche die App, um alle Inhalte zu sehen!
werden endlich Jan, Nicole und Jeremiah bedient!