Stack - Datenstrukturen in Java

Stack in Java

Ein Stack ist eine dynamische Datenstruktur, die auf dem "Last In First Out"-Prinzip (LIFO) basiert.


Ein Stack ist eine dynamische Datenstruktur, die auf dem "Last In First Out"-Prinzip (LIFO) basiert. Hier kann also im Gegensatz zu einer Liste oder einer Queue nur auf das letzte (im Stapel also oberste) Element zugegriffen werden und auch nur an das Ende (bzw. oben) ein neues Element hinzugefügt werden.

Ein Stack der Größe fünf (fünf Rechtecke übereinander) ohne Zahlen und einem top-Zeiger auf das oberste Feld.
Stack

Deklarieren

Stack ist ein Teil des Packages Java.util und muss importiert werden, damit du ihn verwenden kannst.

Dafür kannst du entweder über Stack hovern (mit der Maus über das Wort gehen) und import class auswählen oder über deine Klasse import java.util.Stack; schreiben.

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 dein Stack 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 einen Stack handeln, in der int-Werte gespeichert werden, daher schreibst du Stack<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 Stack <Integer> folgt der Name deines Stacks, hier also stack.

Hinter einem Gleichzeichen steht das Keyword new und die Art des Stacks, hier einfach wieder Stack.

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!

Auf einem Stack können dabei folgende Operationen angewendet werden:

  • add(element)
  • pop()
  • peek()
  • empty()
  • get(index)
  • contains(element)
  • size()

add() "legt" das in den Klammern übergebene Element auf den Stack.

pop() entfernt das "oberste" Element im Stack.

peek() betrachtet das "oberste" Element im Stack, ohne es zu entfernen.

empty() überprüft, ob der Stack leer ist (true), oder nicht (false).

get() wird verwendet, um das Element an dem in den Klammern übergebenen Index auszugeben.

contains() überprüft, ob das in den Klammern übergebene Element im Stack enthalten ist (true) oder nicht (false).

size() gibt die Größe des Stacks aus.

Im folgenden Code werden noch einmal alle vorgestellten Operationen dargestellt:

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

Beispiel

Jan, Nicole und Jeremiah waren auf ihrem Campingtrip einkaufen. Beim Einladen der Einkäufe mussten sie diese in ihrer Tasche übereinander stapeln:

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

Als sie ihre Einkäufe zum Auto getragen haben ist sich Nicole auf einmal nicht mehr sicher, ob sie an das Brot gedacht haben. Sie schaut in die Tasche, kann aber nur den Dosenöffner sehen, da er obenauf liegt:

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

Um sich wirklich sicher zu sein, dass sie das Brot nicht vergessen haben, muss jetzt also nach und nach alles aus dem Beutel genommen werden, bis sie das Brot gefunden haben.

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

Nachdem Nicole den Dosenöffner und die Marmelade aus dem Beutel genommen hat, entdeckt sie das Brot.

Erleichtert räumen sie wieder alles ein

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

und machen sich wieder auf den Weg zurück zum Zeltplatz!

Jan, Nicole und Jeremiah auf dem Parkplatz. Vor ihnen liegt eine Tüte. Vor der Tüte liegt ein Marmeladenglas und ein Dosenöffner.
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