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.