Java Stack-klasse

In deze tutorial zullen we met behulp van voorbeelden leren over de Java Stack-klasse en zijn methoden.

Het Java-verzamelingsraamwerk heeft een klasse met de naam Stackdie de functionaliteit van de stapelgegevensstructuur biedt.

De Stackklas breidt de Vectorklas uit.

Stack-implementatie

In stack worden elementen opgeslagen en geopend op de manier Last In First Out . Dat wil zeggen, er worden elementen aan de bovenkant van de stapel toegevoegd en van de bovenkant van de stapel verwijderd.

Een stapel maken

Om een ​​stapel te maken, moeten we eerst het java.util.Stackpakket importeren . Nadat we het pakket hebben geïmporteerd, kunnen we als volgt een stapel in Java maken.

 Stack stacks = new Stack(); 

Hier, Typegeeft het type van de stack. Bijvoorbeeld,

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

Stapel methoden

Omdat Stackhet de Vectorklasse uitbreidt , erft het alle methoden Vector. VectorBezoek Java Vector Class voor meer informatie over verschillende methoden.

Naast deze methoden bevat de Stackklasse nog 5 methoden die het onderscheiden van Vector.

push () methode

Om een ​​element aan de bovenkant van de stapel toe te voegen, gebruiken we de push()methode. Bijvoorbeeld,

 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); ) ) 

Uitvoer

 Stapel: (hond, paard, kat) 

pop () Methode

Om een ​​element van de bovenkant van de stapel te verwijderen, gebruiken we de pop()methode. Bijvoorbeeld,

 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); ) ) 

Uitvoer

 Initiële stapel: (hond, paard, kat) Element verwijderd: kat 

peek () Methode

De peek()methode retourneert een object vanaf de bovenkant van de stapel. Bijvoorbeeld,

 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); ) ) 

Uitvoer

 Stapel: (hond, paard, kat) Element bovenaan: kat 

search () Methode

Om een ​​element in de stapel te zoeken, gebruiken we de search()methode. Het geeft de positie van het element terug vanaf de bovenkant van de stapel. Bijvoorbeeld,

 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); ) ) 

Uitvoer

 Stapel: (hond, paard, kat) Positie van paard: 2 

empty () methode

Om te controleren of een stapel leeg is of niet, gebruiken we de empty()methode. Bijvoorbeeld,

 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); ) ) 

Uitvoer

Stapel: (hond, paard, kat) is de stapel leeg? false

Gebruik ArrayDeque in plaats van Stack

De Stackklasse zorgt voor de directe implementatie van de stapelgegevensstructuur. Het wordt echter aanbevolen om het niet te gebruiken. Gebruik in plaats daarvan de ArrayDequeklasse (implementeert de Dequeinterface) om de stapelgegevensstructuur in Java te implementeren.

Ga voor meer informatie naar:

  • Java ArrayDeque
  • Waarom Deque over Stack gebruiken?

Interessante artikelen...