English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo Java Stack class e i suoi metodi con l'aiuto di esempi.
Il framework delle collezioni Java ha una classe chiamata Stack, che fornisce le funzionalità della struttura dati pila.
Questa classe Stack eredita la classe Vector.
All'interno della pila, gli elementi sonoUltimo in, primo fuorimodo di memorizzare e accedere. Questo significa che gli elementi vengono aggiunti alla cima della pila e rimossi dalla cima della pila.
Per creare una pila, dobbiamo prima importare il pacchetto java.util.Stack. Dopo aver importato il pacchetto, possiamo utilizzare Java per creare una pila.
Stack<Type> stacks = new Stack<>();
In questo caso, Type indica il tipo della pila. Ad esempio,
//Creazione di una pila di tipo intero Stack<Integer> stacks = new Stack<>(); //Creazione di una pila di tipo stringa Stack<String> stacks = new Stack<>();
Poiché Stack eredita la classe Vector, eredita tutti i metodi di Vector. Per conoscere i metodi diversi di Vector, visitaClasse Vector Java.
Oltre a questi metodi, la classe Stack include 5 metodi diversi da quelli di Vector.
Per aggiungere un elemento alla parte superiore della pila, utilizziamo il metodo push(). Ad esempio,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Aggiungi elementi allo stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); } }
Risultato di output
Stack: [Dog, Horse, Cat]
Per eliminare un elemento dalla parte superiore della pila, utilizziamo il metodo pop(). Ad esempio,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Aggiunta di un elemento alla pila Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Pila iniziale: " + animals); //Eliminazione dell'elemento dalla pila, seguendo il principio del "ultimo entrato, primo uscito" String element = animals.pop(); System.out.println("Eliminazione dell'elemento: " + element); } }
Risultato di output
Pila iniziale: [Dog, Horse, Cat] Eliminazione dell'elemento: Cat
Il metodo peek() restituisce un oggetto dalla parte superiore della pila. Ad esempio,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Aggiungi elementi allo stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //Accesso all'elemento dalla parte superiore, seguendo il principio del "ultimo entrato, primo uscito" String element = animals.peek(); System.out.println("Elemento in cima: " + element); } }
Risultato di output
Stack: [Dog, Horse, Cat] Elemento in cima: Cat
Per cercare un elemento nella pila, utilizziamo il metodo search(). Restituisce la posizione dell'elemento dalla parte superiore della pila. Ad esempio,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Aggiungi elementi allo stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //Ricerca dell'elemento int position = animals.search("Horse"); System.out.println("Posizione dell'elemento Horse: " + position); } }
Risultato di output
Stack: [Dog, Horse, Cat] Posizione dell'elemento Horse: 2
Per controllare se la pila è vuota, utilizziamo il metodo empty(). Ad esempio,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Aggiungi elementi allo stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); //Verifica se lo stack è vuoto boolean result = animals.empty(); System.out.println("L'stack è vuoto? " + result); } }
Risultato di output
Stack: [Dog, Horse, Cat] L'stack è vuoto? false
Questa classe Stack fornisce la struttura dati per l'esecuzione diretta dello stack. Tuttavia, si consiglia di non utilizzarla. Invece, utilizzare la classe ArrayDeque (che implementa l'interfaccia Deque) per implementare la struttura dati stack in Java.
Per ulteriori informazioni, visitare:ArrayDeque Java