Zum Hauptinhalt springen
Veröffentlicht am

Stack-Klasse in Java

Teilen:

Einführung

Die Stapel-Datenstruktur ist eine der grundlegendsten in der Informatik. In Java bietet die Klasse Stack eine effiziente Implementierung dieser Art von Struktur.

Eigenschaften der Stack-Klasse

  1. LIFO (Last In - First Out): Das wesentliche Merkmal des Stapels ist, dass das zuletzt eingefügte Element als erstes entfernt wird.
  2. Dynamisch: Die Klasse Stack wächst und schrumpft dynamisch, wenn Elemente hinzugefügt oder entfernt werden.
  3. Grundlegende Methoden: push(), pop() und peek() sind die am häufigsten verwendeten Methoden in einem Stapel.

Wann sollte die Stack-Klasse verwendet werden?

Der Stapel wird in der Regel in Situationen eingesetzt, in denen die Verarbeitungsreihenfolge der LIFO-Regel folgen muss. Einige typische Anwendungen umfassen:

  • Validierung von Ausdrücken mit ausgewogenen Klammern.
  • Implementierung von „Rückgängig"-Funktionen in Editoren.
  • Seitennavigation in Webbrowsern (Zurück- und Vorwärts-Schaltflächen).
  • Konvertierung von Infix-Ausdrücken in Postfix-Ausdrücke.
package com.caffeinealgorithm.programaremjava;

import java.util.Stack;

public class StapelKlasse {
  private Stack<Integer> stapel = new Stack<>();
  private int multiplikator = 10, zahl = 1;

  public void Run() {
    for (int index = 1; index <= 5; index++) {
      stapel.push(zahl);
      zahl *= multiplikator;
    }

    stapelAusgeben();

    System.out.printf("\nEntfernung der Zahl %d aus dem Stapel mit der pop()-Methode.\n\n", stapel.pop());

    stapelAusgeben();

    System.out.printf("\nDie nächste Zahl, die aus dem Stapel entfernt wird, ist die %d.", stapel.peek());
  }

  private void stapelAusgeben() {
    for (int zahl : stapel)
      System.out.println(zahl);
  }
}

/*
  1
  10
  100
  1000
  10000

  Entfernung der Zahl 10000 aus dem Stapel mit der pop()-Methode.

  1
  10
  100
  1000

  Die nächste Zahl, die aus dem Stapel entfernt wird, ist die 1000.
*/

Zusätzliche Methoden der Stack-Klasse

  • isEmpty(): Gibt true zurück, wenn der Stapel leer ist.
  • search(Object o): Gibt die Position eines Objekts im Stapel zurück, wobei die Zählung von oben beginnt (Element 1 ist die Spitze).
  • size(): Gibt die Anzahl der Elemente im Stapel zurück.
  • clear(): Entfernt alle Elemente aus dem Stapel.

Einschränkungen und Überlegungen

Obwohl die Klasse Stack nützlich ist, wird in vielen modernen Szenarien die Verwendung der Klasse Deque anstelle von Stack bevorzugt, da sie flexibler ist und sowohl als Stapel als auch als Warteschlange eingesetzt werden kann.

Fazit

Die Klasse Stack ist eine grundlegende und klassische Implementierung der Stapel-Datenstruktur in Java. Zu wissen, wie und wann man sie einsetzt, ist für viele Algorithmen und Anwendungen entscheidend. Die Methoden und Eigenschaften zu erlernen ist ein wesentlicher Schritt auf dem Weg zu einem kompetenten Java-Entwickler.

Happy coding!