Die Klasse Java Stack erweitert die Klasse Vector. Sie können damit neue Elemente erstellen, ein Element im Stack anzeigen, ein Element im Stack aktualisieren und alle Elemente aus dem Stack löschen. Stacks verarbeiten Daten in einer FILO-Reihenfolge (First-in-Last-Out). Das bedeutet, dass Sie Elemente nur ganz oben auf einem Stapel hinzufügen oder entfernen können.

Die Stack-Datenstruktur hat fünf primäre Methoden. Die Java Stack-Klasse hat jedoch auch Zugriff auf über 40 andere Methoden, die sie von der Vector-Klasse erbt.

Erstellen eines Stacks in Java

Die Stack-Klasse hat einen einzigen Konstruktor Damit können Sie einen leeren Stapel erstellen. Jeder Stapel hat ein Typargument, das den Datentyp bestimmt, der gespeichert wird.

importieren java.util. Stapel;

ÖffentlichkeitKlasseHauptsächlich{
ÖffentlichkeitstatischLeerehauptsächlich(String[] Argumente){
// Stapel erstellen
Stapel Kunden = Neu Stapel();
}
}

Der obige Code erstellt eine Stack-Datenstruktur mit dem Namen Kunden die String-Werte speichert.

instagram viewer

Füllen eines Stacks

Eine der fünf Hauptmethoden der Stack-Klasse ist die drücken() Methode. Es nimmt ein einzelnes Element, das den gleichen Datentyp wie der Stapel hat, und schiebt dieses Element an die Spitze des Stapels.

// Stapel füllen
Kunden.push("Jane Doe");
Kunden.push("John Doe");
Kunden.push ("Patrick Williams");
Kunden.push("Paul Smith");
Kunden.push("Erick Rowe");
Kunden.push("Ella Jones");
Kunden.push("Jessica Brown");

Der obige Code füllt den Kundenstapel mit sieben Elementen. Es schiebt jedes neue Element an die Spitze des Stapels. Das Objekt ganz oben im Kundenstapel ist also Jessica Brown. Und Sie können dies mit dem Stack bestätigen spähen() Methode. Das spähen() Methode akzeptiert keine Argumente. Es gibt das Objekt an der Spitze des Stapels zurück, ohne es zu entfernen.

// Objekt am Anfang eines Stacks anzeigen
System.out.println (Kunden.peek());

Der obige Code gibt die folgende Ausgabe an die Konsole zurück:

Jessica Braun

Zeigen Sie die Elemente in einem Stapel an

Die Stack-Datenstruktur ist ziemlich restriktiv darin, wie Sie mit ihren Daten interagieren können. Sie sollten einen Stack hauptsächlich über sein oberstes Element verwenden. Sie können jedoch auch von der Vector-Klasse geerbte Methoden verwenden, um auf beliebige Elemente zuzugreifen. Zu diesen Methoden gehören elementAt und removeElementAt.

Der einfachste Weg, sich einen Überblick über den Inhalt eines Stacks zu verschaffen, besteht darin, ihn einfach auszudrucken. Übergeben Sie ein Stack-Objekt an System.out.println und die Methode toString() des Stapels wird eine schöne Zusammenfassung erzeugen:

// Alle Elemente eines Stapels anzeigen
System.out.println (Kunden);

Der obige Code gibt die folgende Ausgabe an die Konsole aus:

[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella Jones, Jessica Brown]

Suchen nach einer Artikelposition in einem Stapel

Wenn Sie ein Element im Stapel kennen, können Sie seine Indexposition oder seine Position relativ zum Anfang des Stapels identifizieren. Das Index von() -Methode nimmt ein Element im Stack und gibt seine Indexposition zurück. Denken Sie daran, dass ein Stack mit der Indizierung seiner Elemente bei Null beginnt.

// eine Artikelindexposition finden
System.out.println (Customers.indexOf("Jane Doe"));

Der obige Code gibt die folgende Ausgabe an die Konsole aus:

0

Das Suche() Methode ist eine der primären Methoden der Stack-Klasse. Es gibt eine Elementposition relativ zur Spitze des Stapels zurück, wobei das Element an der Spitze des Stapels die Position Nummer eins hat.

System.out.println (Customers.search("Jane Doe"));

Der obige Code gibt die folgende Ausgabe an die Konsole aus:

7

Wenn Sie die liefern Suche() oder der Index von() Methoden mit einem Element, das sich nicht im Stack befindet, geben sie ein negatives zurück.

System.out.println (Customers.search("Elsa Doe"));
System.out.println (Customers.indexOf("Elsa Doe"));

Der obige Code gibt die folgende Ausgabe an die Konsole aus:

-1
-1

Aktualisieren von Elementen in einem Stapel

Sie können nur ein Element ganz oben auf einem Stapel manipulieren. Wenn Sie also ein Element aktualisieren möchten, das sich nicht ganz oben im Stapel befindet, müssen Sie alle Elemente darüber platzieren. Das Pop() Methode ist eine der primären Methoden des Stacks. Das Pop() Methode akzeptiert keine Argumente. Es entfernt das Element an der Spitze des Stapels und gibt es zurück.

// aktualisiere ein Objekt
Kunden.pop();
Kunden.pop();
Kunden.push("Ella James");
Kunden.push("Jessica Brown");
System.out.println (Kunden);

Der obige Code gibt die folgende Ausgabe an die Konsole aus:

[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella James, Jessica Brown]

Wie Sie der Ausgabe entnehmen können, aktualisiert der Code Ellas Nachnamen in James. Es handelt sich um einen Prozess, der Elemente vom Stapel entfernt, bis Sie das Zielobjekt erreichen. Dann öffnet es das Zielobjekt; aktualisiert es; und schiebt es zusammen mit den Elementen, die oben auf dem Zielelement waren, zurück auf den Stapel. Jedes Mal, wenn Sie ein Element in Ihrem Stack aktualisieren möchten, müssen Sie ein Programm verwenden, das Operationen wie die obige ausführt.

Löschen eines Elements aus einem Stapel

Um ein einzelnes Element aus der Stack-Datenstruktur zu löschen, können Sie wieder die Methode pop() verwenden. Wenn sich das zu löschende Element nicht ganz oben befindet, können Sie Elemente oben platzieren, bis Sie das gewünschte Element erreicht haben.

Löschen aller Elemente in einem Stapel

Um alle Elemente aus einem Stack zu löschen, können Sie a verwenden Java-While-Schleife mit der pop()-Methode, um die Elemente einzeln zu löschen. Ein effizienterer Ansatz ist jedoch die Verwendung von klar() Methode. Das klar() -Methode ist eine, die die Stack-Klasse von der Vector-Klasse erbt. Es nimmt keine Argumente entgegen, gibt nichts zurück, sondern entfernt einfach alle Elemente innerhalb der Stack-Datenstruktur.

// alle Elemente in einem Stapel löschen
Kunden.clear();
System.out.println (Kunden.leer());

Der obige Code löscht alle Elemente im Kundenstapel. Es verwendet dann die leer() Methode, um zu prüfen, ob der Stack leer ist. Das leer() ist eine weitere primäre Methode der Java-Stack-Klasse. Es akzeptiert keine Argumente und gibt einen booleschen Wert zurück. Diese Methode gibt true zurück, wenn der Stack leer ist, andernfalls false.

Der obige Code gibt die folgende Ausgabe an die Konsole aus:

Stimmt

Praktische Anwendungen für die Stack-Datenstruktur

Die Stack-Datenstruktur ist sehr restriktiv. Sie bietet nicht so viel Flexibilität bei der Datenverarbeitung wie andere Datenstrukturen. Dies wirft die Frage auf: Wann sollten Sie die Stack-Datenstruktur verwenden?

Die Stack-Datenstruktur eignet sich ideal für Anwendungen, die eine Datenverarbeitung in umgekehrter Reihenfolge erfordern. Diese beinhalten:

  • Eine Anwendung, die überprüft, ob ein Wort ein Palindrom ist.
  • Eine Anwendung, die Dezimalzahlen in Binärzahlen umwandelt.
  • Anwendungen, die Benutzern das Rückgängigmachen ermöglichen.
  • Spiele, die es einem Benutzer ermöglichen, zu vorherigen Zügen zurückzukehren, wie z. B. ein Schachspiel.