In questo tutorial, impareremo a conoscere la classe Java Stack e i suoi metodi con l'aiuto di esempi.
Il framework delle collezioni Java ha una classe denominata Stack
che fornisce la funzionalità della struttura dati dello stack.
La Stack
classe estende la Vector
classe.
Implementazione dello stack
Nello stack, gli elementi vengono memorizzati e accessibili in modo Last In First Out . Ovvero, gli elementi vengono aggiunti in cima alla pila e rimossi dalla cima della pila.
Creazione di uno stack
Per creare uno stack, dobbiamo java.util.Stack
prima importare il pacchetto. Una volta importato il pacchetto, ecco come possiamo creare uno stack in Java.
Stack stacks = new Stack();
Qui, Type
indica il tipo di pila. Per esempio,
// Create Integer type stack Stack stacks = new Stack(); // Create String type stack Stack stacks = new Stack();
Metodi di stack
Poiché Stack
estende la Vector
classe, eredita tutti i metodi Vector
. Per conoscere i diversi Vector
metodi, visita Java Vector Class.
Oltre a questi metodi, la Stack
classe include altri 5 metodi che la distinguono da Vector
.
metodo push ()
Per aggiungere un elemento in cima alla pila, usiamo il push()
metodo. Per esempio,
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); ) )
Produzione
Stack: (cane, cavallo, gatto)
metodo pop ()
Per rimuovere un elemento dalla cima della pila, usiamo il pop()
metodo. Per esempio,
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); ) )
Produzione
Stack iniziale: (cane, cavallo, gatto) Elemento rimosso: gatto
metodo peek ()
Il peek()
metodo restituisce un oggetto dalla parte superiore dello stack. Per esempio,
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); ) )
Produzione
Stack: (Cane, Cavallo, Gatto) Elemento in alto: Cat
metodo search ()
Per cercare un elemento nello stack, usiamo il search()
metodo. Restituisce la posizione dell'elemento dalla parte superiore della pila. Per esempio,
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); ) )
Produzione
Stack: (cane, cavallo, gatto) Posizione del cavallo: 2
metodo empty ()
Per verificare se uno stack è vuoto o meno, utilizziamo il empty()
metodo. Per esempio,
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); ) )
Produzione
Pila: (cane, cavallo, gatto) La pila è vuota? falso
Usa ArrayDeque invece di Stack
La Stack
classe fornisce l'implementazione diretta della struttura dati dello stack. Tuttavia, si consiglia di non utilizzarlo. Utilizzare invece la ArrayDeque
classe (implementa l' Deque
interfaccia) per implementare la struttura dati dello stack in Java.
Per saperne di più, visita:
- Java ArrayDeque
- Perché usare Deque su Stack?