Java Stack-klasse
Java Stack-klasse
In deze zelfstudie leren we over de Java Stack-klasse en zijn methoden aan de hand van voorbeelden.
Het Java-verzamelingsframework heeft een klasse met de naam Stack
die de functionaliteit van de stapelgegevensstructuur biedt.
De Stack
class breidt de Vector
uit klasse.
Stack-implementatie
In stapel worden elementen opgeslagen en geopend in Laatst in, eerst uit manier. Dat wil zeggen, elementen worden toegevoegd aan de bovenkant van de stapel en verwijderd van de bovenkant van de stapel.
Een stapel maken
Om een stapel te maken, moeten we de java.util.Stack
. importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we als volgt een stapel maken in Java.
Stack<Type> stacks = new Stack<>();
Hier, Type
geeft het type van de stapel aan. Bijvoorbeeld,
// Create Integer type stack
Stack<Integer> stacks = new Stack<>();
// Create String type stack
Stack<String> stacks = new Stack<>();
Stapelmethoden
Sinds Stack
breidt de Vector
. uit class, erft het alle methoden Vector
. Voor meer informatie over verschillende Vector
methoden, bezoek Java Vector Class.
Naast deze methoden, is de Stack
klasse bevat nog 5 methoden die het onderscheiden van Vector
.
push()-methode
Om een element bovenaan de stapel toe te voegen, gebruiken we de push()
methode. Bijvoorbeeld,
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
}
}
Uitvoer
Stack: [Dog, Horse, Cat]
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<String> 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
Initial Stack: [Dog, Horse, Cat] Removed Element: Cat
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<String> 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
Stack: [Dog, Horse, Cat] Element at top: Cat
search()-methode
Om een element in de stapel te zoeken, gebruiken we de search()
methode. Het retourneert de positie van het element vanaf de bovenkant van de stapel. Bijvoorbeeld,
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<String> 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
Stack: [Dog, Horse, Cat] Position of Horse: 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<String> 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
Stack: [Dog, Horse, Cat] Is the stack empty? false
Gebruik ArrayDeque in plaats van Stack
De Stack
class biedt de directe implementatie van de stack-gegevensstructuur. Het wordt echter aanbevolen om het niet te gebruiken. Gebruik in plaats daarvan de ArrayDeque
class (implementeert de Deque
interface) om de stapelgegevensstructuur in Java te implementeren.
Ga voor meer informatie naar:
- Java ArrayDeque
- Waarom Deque gebruiken boven Stack?
Java