Queue - Datenstrukturen in Java

Queue in Java

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.

Eine Queue mit drei Daten-Knoten und head und tail am Anfang bzw. Ende. Diese zeigen beide auf NULL.
Queue

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.*;:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Nun muss deine Queue noch deklariert werden:

Hier versteckt sich noch mehr!
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:

Hier versteckt sich noch mehr!
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é:

Hier versteckt sich noch mehr!
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:

Hier versteckt sich noch mehr!
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:

Hier versteckt sich noch mehr!
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:

Hier versteckt sich noch mehr!
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.

Hier versteckt sich noch mehr!
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“.

Jan, Nicole und Jeremiah stehen an der Kasse. Jan denkt sich "War klar, dass wir uns wieder an die beste Schlange angestellt haben".

Nachdem endlich auch Chloé fertig mit bezahlen ist,

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

werden endlich Jan, Nicole und Jeremiah bedient!

No items found.

simpleclub ist am besten in der App.

Mit unserer App hast du immer und überall Zugriff auf: Lernvideos, Erklärungen mit interaktiven Animationen, Übungsaufgaben, Karteikarten, individuelle Lernpläne uvm.

Jetzt simpleclub Azubi holen!

Mit simpleclub Azubi bekommst du Vollzugang zur App: Wir bereiten dich in deiner Ausbildung optimal auf deine Prüfungen in der Berufsschule vor. Von Ausbilder*innen empfohlen.

Jetzt simpleclub Azubi holen