English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Java

Java Controllo dei flussi

Java Array

Java Orientato agli oggetti (I)

Java Orientato agli oggetti (II)

Java Orientato agli oggetti (III)

Gestione delle eccezioni Java

Java List

Java Queue (coda)

Java Map collection

Java Set collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Stack Java

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.

Implementazione della pila

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.

Creazione 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<>();

Metodi della pila

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.

Metodo push()

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]

Metodo pop()

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

Metodo peek()

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

Metodo empty()

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

Utilizzare ArrayDeque al posto di Stack

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