Java - La classe Stack
Stack è una sottoclasse di Vector che implementa uno stack standard last-in, first-out.
Stack definisce solo il costruttore predefinito, che crea uno stack vuoto. Stack include tutti i metodi definiti da Vector e ne aggiunge diversi.
Stack( )
Oltre ai metodi ereditati dalla sua classe genitore Vector, Stack definisce i seguenti metodi:
Sr.No. | Metodo e descrizione |
---|---|
1 | boolean empty() Verifica se questa pila è vuota. Restituisce true se lo stack è vuoto e false se lo stack contiene elementi. |
2 | Object peek( ) Restituisce l'elemento in cima allo stack, ma non lo rimuove. |
3 | Object pop( ) Restituisce l'elemento in cima allo stack, rimuovendolo durante il processo. |
4 | Object push(Object element) Spinge l'elemento sulla pila. Viene restituito anche l'elemento. |
5 | int search(Object element) Cerca l'elemento nello stack. Se trovato, viene restituito il suo offset dalla cima dello stack. In caso contrario, viene restituito -1. |
Esempio
Il seguente programma illustra molti dei metodi supportati da questa raccolta:
import java.util.*;
public class StackDemo {
static void showpush(Stack st, int a) {
st.push(new Integer(a));
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}
static void showpop(Stack st) {
System.out.print("pop -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("stack: " + st);
}
public static void main(String args[]) {
Stack st = new Stack();
System.out.println("stack: " + st);
showpush(st, 42);
showpush(st, 66);
showpush(st, 99);
showpop(st);
showpop(st);
showpop(st);
try {
showpop(st);
} catch (EmptyStackException e) {
System.out.println("empty stack");
}
}
}
Questo produrrà il seguente risultato:
Produzione
stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack