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 Stack
die de functionaliteit van de stapelgegevensstructuur biedt.
De Stack
klas breidt de Vector
klas 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.Stack
pakket importeren . Nadat we het pakket hebben geïmporteerd, kunnen we als volgt een stapel in Java maken.
Stack stacks = new Stack();
Hier, Type
geeft 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 Stack
het de Vector
klasse uitbreidt , erft het alle methoden Vector
. Vector
Bezoek Java Vector Class voor meer informatie over verschillende methoden.
Naast deze methoden bevat de Stack
klasse 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 Stack
klasse zorgt voor de directe implementatie van de stapelgegevensstructuur. Het wordt echter aanbevolen om het niet te gebruiken. Gebruik in plaats daarvan de ArrayDeque
klasse (implementeert de Deque
interface) om de stapelgegevensstructuur in Java te implementeren.
Ga voor meer informatie naar:
- Java ArrayDeque
- Waarom Deque over Stack gebruiken?