Heim  >  Artikel  >  Java  >  Stack-Klasse in Java

Stack-Klasse in Java

WBOY
WBOYOriginal
2024-08-30 16:01:28652Durchsuche

Die Stack-Klasse ist Teil des Pakets java.util, das eine Stack-Datenstruktur implementiert. Die Stack-Klasse in Java arbeitet nach dem LIFO-Prinzip (Last in First Out). Die Stack-Klasse bietet grundlegende Push- und Pop-Operationen sowie zusätzliche Funktionen wie Leer, Peek und Suche. Die Stack-Klasse bietet verschiedene Methoden zum Ausführen verschiedener Operationen.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax:

Hier ist eine grundlegende Syntax für die Verwendung der Stack-Klasse in Java:

import java.util.*;
// instantiate stack through default constructor
Public class Myclass{
// instantiate stack class
Stack stack = new Stack();
stack.push(1);  // calling push method to insert an element
}

Wie funktioniert die Stack-Klasse in Java?

Die Stack-Klasse ist Teil des java.util-Pakets, das die Vector-Klasse erweitert und die List-Schnittstelle implementiert. Die Größe der Vector-Klasse kann in Java geändert werden, was bedeutet, dass sie beim Hinzufügen neuer Elemente größer werden kann und nach dem Entfernen von Elementen kleiner wird. Da die Stack-Klasse den Vektor erweitert, kann die Größe auch geändert werden. Um eine Stack-Klasse zu verwenden, müssen wir über einen Konstruktor eine Instanz einer Stack-Klasse erstellen. Da die Größe der Stapelklasse geändert werden kann, ist darin nur ein Standardkonstruktor verfügbar.

Nachdem die Instanz abgerufen wurde, können je nach Anforderung die folgenden Methoden aufgerufen werden:

  • push(): Diese Methode fügt ein Element oben auf dem Stapel ein und gibt das eingefügte Element zurück.
  • pop(): Diese Methode entfernt das zuletzt eingefügte Element aus dem Stapel und gibt das entfernte Element zurück.
  • peek(): Diese Methode gibt oberste Elemente vom Stapel zurück, ohne sie vom Stapel zu entfernen.
  • Suche (Objektelement): Diese Methode sucht nach einem angegebenen Element in den Stapeln und gibt seinen Index von der Oberseite des Stapels zurück, wenn das Element gefunden wird; andernfalls wird -1 zurückgegeben.
  • empty(): Diese Methode prüft, ob der angegebene Stapel leer ist. Es gibt true zurück, wenn der Stapel leer ist; andernfalls wird false zurückgegeben.
  • size(): Diese Methode gibt eine Anzahl der im Stapel verfügbaren Elemente zurück.

Beispiele der Stack-Klasse in Java

Einige der Beispiele sind unten aufgeführt:

Beispiel #1

Jetzt sehen wir ein Java-Codebeispiel, wie die oben genannten Methoden im Stack verwendet werden.

Code:

//import stack class
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
// Creating Instance of  Stack
Stack<String> numbers = new Stack<>(); // stack of type string only string type elements can be inserted
// Pushing new elements to the Stack
numbers.push("One");
numbers.push("Two");
numbers.push("Three");
numbers.push("Four");
int size= numbers.size(); // finding size of stack
System.out.println("Stack contains => " + numbers);
System.out.println("Size of Stack is  => " + size);
System.out.println();
// Popping Elements from the Stack
String numbersAtTop = numbers.pop();  // Throws EmptyStackException if the stack is empty
System.out.println("Element Removed  => " + numbersAtTop);
System.out.println("Current State of Stack => " + numbers);
size= numbers.size();
System.out.println("Size of Stack is  => " + size);
System.out.println();
// Get the element at the top of the stack without removing it
numbersAtTop = numbers.peek();
System.out.println("Top Most elemement of stack  => " + numbersAtTop);
System.out.println("Current State of Stack => " + numbers);
// searching for an element in stack
int index = numbers.search("Two");
System.out.println("Element found at Index " + index);
// check if the stack is empty
boolean isempty = numbers.empty();
System.out.println("Is Stack Empty =>  " + isempty);
}}

Das obige Programm zeigt, wie verschiedene Operationen wie Push, Pop, Peek und Search, Empty für die Stack-Klasse ausgeführt werden können.

Beispiel #2

Jetzt werden wir sehen, wie Elemente einer Stack-Klasse iteriert werden können.

Code:

//import stack class
import java.util.Stack;
//import stream to iterate over stack
import java.util.stream.Stream;
public class StackDemo {
public static void main(String[] args) {
// Creating Instance of  Stack
Stack<String> numbers = new Stack<>(); // stack of type string only string type elements can be inserted
// Pushing new elements to the Stack
numbers.push("First");
numbers.push("Second");
numbers.push("Third");
numbers.push("Fourth");
System.out.println("Stack contains => " + numbers);
System.out.println();
// getting stream object to iterate over elements of stack
Stream stream = numbers.stream();
System.out.println("Iterating stack using stream >> ");
stream.forEach((item) -> {
System.out.println(item);  // print item
});
}
}

Das obige Programm zeigt, wie wir Elemente des Stapels iterieren können. Wir müssen die Methode stream() auf der Stack-Instanz aufrufen, die das Stream-Objekt zurückgibt. Dann können wir mit der forEach-Methode der Stream-Klasse über den Stapel iterieren.

Fazit

In diesem Artikel haben wir etwas über die Stack-Klasse gesehen. Außerdem haben wir gesehen, wie wir die Stack-Klasse instanziieren und verschiedene in der Stack-Klasse verfügbare Methoden verwenden können. Wir haben verschiedene Operationen beobachtet, die man mit einer Stack-Klasse ausführen kann. Die oben gezeigten Java-Codebeispiele bieten vollständige Klarheit über die Stack-Klasse.

Das obige ist der detaillierte Inhalt vonStack-Klasse in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Abschlussklasse in JavaNächster Artikel:Abschlussklasse in Java