Java-Stapelklasse

In diesem Tutorial lernen wir anhand von Beispielen die Java Stack-Klasse und ihre Methoden kennen.

Das Java-Sammlungsframework verfügt über eine Klasse mit dem Namen Stack, die die Funktionalität der Stapeldatenstruktur bereitstellt.

Die StackKlasse erweitert die VectorKlasse.

Stapelimplementierung

Im Stapel werden Elemente gespeichert und auf Last In First Out- Weise zugegriffen . Das heißt, Elemente werden oben im Stapel hinzugefügt und oben im Stapel entfernt.

Stapel erstellen

Um einen Stapel zu erstellen, müssen wir java.util.Stackzuerst das Paket importieren . Sobald wir das Paket importiert haben, können wir hier einen Stapel in Java erstellen.

 Stack stacks = new Stack(); 

Hier wird Typeder Stapeltyp angegeben. Beispielsweise,

 // Create Integer type stack Stack stacks = new Stack(); // Create String type stack Stack stacks = new Stack(); 

Stapelmethoden

Da Stackdie VectorKlasse erweitert wird, erbt sie alle Methoden Vector. Weitere Informationen zu verschiedenen VectorMethoden finden Sie unter Java Vector Class.

Neben diesen Methoden enthält die StackKlasse 5 weitere Methoden, von denen sie sich unterscheidet Vector.

push () Methode

Um ein Element oben im Stapel hinzuzufügen, verwenden wir die push()Methode. Beispielsweise,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); ) ) 

Ausgabe

 Stapel: (Hund, Pferd, Katze) 

pop () Methode

Um ein Element vom oberen Rand des Stapels zu entfernen, verwenden wir die pop()Methode. Beispielsweise,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Initial Stack: " + animals); // Remove element stacks String element = animals.pop(); System.out.println("Removed Element: " + element); ) ) 

Ausgabe

 Anfangsstapel: (Hund, Pferd, Katze) Entferntes Element: Katze 

peek () Methode

Die peek()Methode gibt ein Objekt vom oberen Rand des Stapels zurück. Beispielsweise,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Access element from the top String element = animals.peek(); System.out.println("Element at top: " + element); ) ) 

Ausgabe

 Stapel: (Hund, Pferd, Katze) Element oben: Katze 

search () Methode

Um ein Element im Stapel zu durchsuchen, verwenden wir die search()Methode. Es gibt die Position des Elements vom oberen Rand des Stapels zurück. Beispielsweise,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Search an element int position = animals.search("Horse"); System.out.println("Position of Horse: " + position); ) ) 

Ausgabe

 Stapel: (Hund, Pferd, Katze) Position des Pferdes: 2 

empty () Methode

Um zu überprüfen, ob ein Stapel leer ist oder nicht, verwenden wir die empty()Methode. Beispielsweise,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Check if stack is empty boolean result = animals.empty(); System.out.println("Is the stack empty? " + result); ) ) 

Ausgabe

Stapel: (Hund, Pferd, Katze) Ist der Stapel leer? falsch

Verwenden Sie ArrayDeque anstelle von Stack

Die StackKlasse bietet die direkte Implementierung der Stack-Datenstruktur. Es wird jedoch empfohlen, es nicht zu verwenden. Verwenden Sie stattdessen die ArrayDequeKlasse (implementiert die DequeSchnittstelle), um die Stapeldatenstruktur in Java zu implementieren.

Um mehr zu erfahren, besuchen Sie:

  • Java ArrayDeque
  • Warum Deque over Stack verwenden?

Interessante Beiträge...