Imprimir
Categoría: Java
Visto: 19965

En PC Resumen vamos a hablar de la clase Stack. La clase Stack extiende a la clase Vector para implementar una estructura de datos de tipo pila. Funciona como las pilas que conocéis y básicamente tiene los métodos push (apilar), pop (desapilar), peek (cima) y empty (esta vacia).

import java.util.Stack;
import java.util.EmptyStackException;

public class PruebaStack {
    
    public PruebaStack() {
        Stack<Number> pila = new Stack<Number>();
        Long numeroLong = 12L;
        Integer numeros = 34567;
        Float numeroFloat = 1.0F;
        Double numeroDouble = 1234.5678;
        pila.push(numeroLong);
        imprimirPila(pila);
        pila.push(numeros);
        imprimirPila(pila);
        pila.push(numeroFloat);
        imprimirPila(pila);
        pila.push(numeroDouble);
        imprimirPila(pila);
        try {
            Number objetoEliminado = null;
            while(true) {
                objetoEliminado = pila.pop();
                System.out.printf("%s se quita \n", objetoEliminado);
                imprimirPila(pila);
            }
        } Catch(EmptyStackException emptyStackException) {
            emptyStackException.printStackTrace ();
        }
    }

    private void imprimirPila(Stack<Number> pila) {
        if (pila.empty()) {
            System.out.print("la pila esta vacia\n\n");
        } else {
            System.out.print("la pila contiene: ");
            for (Number numero : pila) {
                System.out.printf("%s ", numero);
            }
            System.out.print("(superior) \n\n");
        }
    }

    public static void main(String args[]) {
        new PruebaStack();
    }
}

Como la esta clase extiende a Vector podemos utilizar cualquiera de los métodos de esta clase como por ejemplo add para añadir a cualquier posición, pero entonces no estaríamos operando con una pila. Por lo tanto con pilas sólo hay que utilizar apilar y desapilar.