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