Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java Stack-Klasse – Umfassender Leitfaden zu Verwendung und Methoden

Java Stack-Klasse

Dieses Tutorial erklärt Javas Stack-Klasse, ihre Kernmethoden und praktische Beispiele, um Stack-Operationen zu meistern.

Das Java Collections Framework enthält eine Stack-Klasse, die die klassische Stack-Datenstruktur implementiert. Laut der offiziellen Java-Dokumentation erweitert Stack die Klasse Vector und erbt alle deren Methoden, während sie stack-spezifische Operationen hinzufügt.

Java Stack-Klasse – Umfassender Leitfaden zu Verwendung und Methoden


Stack-Implementierung

Ein Stack folgt dem Last In, First Out-Prinzip (LIFO): Elemente werden oben auf den Stack gelegt (push) und von oben entfernt (pop). Das folgende Diagramm veranschaulicht dieses Verhalten.

Java Stack-Klasse – Umfassender Leitfaden zu Verwendung und Methoden


Stack erstellen

Um einen Stack zu erstellen, importieren Sie java.util.Stack und instanziieren ihn mit dem gewünschten generischen Typ:

Stack<Type> stack = new Stack<>(); 

Beispiele:

// Integer-Stack Stack<Integer> intStack = new Stack<>(); // String-Stack Stack<String> stringStack = new Stack<>(); 

Stack-Methoden

Neben den geerbten Vector-Methoden bietet Stack fünf dedizierte Operationen, die es von generischen Collections unterscheiden. Für eine vollständige Liste der Vector-Methoden siehe die Vector-Klassen-Dokumentation.


push()-Methode

Die push()-Methode fügt ein Element oben auf dem Stack hinzu.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); } } 

Ausgabe

Stack: [Dog, Horse, Cat]

pop()-Methode

Die pop()-Methode entfernt das oberste Element und gibt es zurück.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Initial Stack: " + animals); String removed = animals.pop(); System.out.println("Removed Element: " + removed); } } 

Ausgabe

Initial Stack: [Dog, Horse, Cat] Removed Element: Cat

peek()-Methode

Die peek()-Methode ruft das oberste Element ab, ohne es zu entfernen.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); String top = animals.peek(); System.out.println("Element at top: " + top); } } 

Ausgabe

Stack: [Dog, Horse, Cat] Element at top: Cat

Die search()-Methode gibt die 1-basierte Position eines Elements vom Stack-Top zurück, oder -1, falls es nicht vorhanden ist.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); int pos = animals.search("Horse"); System.out.println("Position of Horse: " + pos); } } 

Ausgabe

Stack: [Dog, Horse, Cat] Position of Horse: 2

empty()-Methode

Die empty()-Methode prüft, ob der Stack Elemente enthält.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); boolean isEmpty = animals.empty(); System.out.println("Is the stack empty? " + isEmpty); } } 

Ausgabe

Stack: [Dog, Horse, Cat] Is the stack empty? false

ArrayDeque statt Stack verwenden

Obwohl Stack einen Stack implementiert, gilt es als Legacy. Moderner Java-Code bevorzugt ArrayDeque (implementiert das Deque-Interface) für Stack-Funktionalität, da es bessere Performance und klarere Semantik bietet. Weitere Details finden Sie unter:


Java

  1. Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
  2. Java instanceof-Operator: Ein umfassender Leitfaden
  3. Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele
  4. Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
  5. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  6. Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
  7. Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
  8. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  9. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
  10. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen