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 Stackche fornisce la funzionalità della struttura dati dello stack.
La Stackclasse estende la Vectorclasse.

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.Stackprima importare il pacchetto. Una volta importato il pacchetto, ecco come possiamo creare uno stack in Java.
Stack stacks = new Stack();
Qui, Typeindica 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é Stackestende la Vectorclasse, eredita tutti i metodi Vector. Per conoscere i diversi Vectormetodi, visita Java Vector Class.
Oltre a questi metodi, la Stackclasse 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 Stackclasse fornisce l'implementazione diretta della struttura dati dello stack. Tuttavia, si consiglia di non utilizzarlo. Utilizzare invece la ArrayDequeclasse (implementa l' Dequeinterfaccia) per implementare la struttura dati dello stack in Java.
Per saperne di più, visita:
- Java ArrayDeque
- Perché usare Deque su Stack?








