Stack Java: Documentación y ejemplos de la clase

La clase Stack en Java

La clase Stack de Java está incluida en la Java Collections Framework (JCF). Para utilizarla solo debemos importar el siguiente paquete:

import java.util.Stack;

En este paquete la clase Stack hereda de la clase Vector que, a su vez, implementa la interfaz List. En este artículo no nos centraremos en cómo ha sido desarrollada si no en cómo usarla. Para lograrlo, debemos conocer sus métodos.

DATO: Los mismos desarrolladores de Java desaconsejan usar la clase Stack. Para poder manejar datos con una estructura LIFO te recomiendan los métodos que ofrecen las implementaciones de la interfaz Deque. Estos son más eficientes.

Métodos de la clase Stack en Java y constructor

Veamos que nos ofrece esta clase:

  • Constructor: crea una pila vacía.
Stack<Integer> stack = new Stack();
  • boolean empty(): devuelve True si la pila está vacía, False en caso contrario.
if (pila.empty()) {
    System.out.println("La pila esta vacia");
} else {
    System.out.println("La pila NO esta vacia");
}
  • E peek(): devuelve el elemento del top de la pila. En caso de que no contenga ningún elemento, lanza una EmptyStackException.
try {
    var top = pila.peek();
} catch (EmptyStackException e) {
    System.out.println("No puedes hacer peek en una pila vacia");
}
  • E pop(): elimina y devuelve el elemento del top de la pila. En caso de que esté vacía, lanza una EmptyStackException.
try {
    int eliminado = pila.pop();
    System.out.println("Se ha eliminado el elemento: " + eliminado);
} catch (EmptyStackException e) {
    System.out.println("No puedes hacer pop en una pila vacia");
}
  • E push(E item): inserta el item pasado como parámetro en el top de la pila y lo devuelve.
int item = pila.push(2);
System.out.println("Se ha añadido el elemento: " + item);
  • int search(Object o): devuelve la posición de la pila en la que está el objeto «o». Si no está en la pila, la función retorna -1. Es importante saber que para conocer la posición en la que está el objeto se empieza a contar des del top del Stack, considerado como la posición 1.
int posicion = pila.search(2);
System.out.println("Posición a partir del top (1): " + posicion);
diagrama sobre cómo funciona el método search de la clase Stack en Java

Ejemplo Stack

En esta sección te ofrezco un pequeño programa de prueba que crea una pila vacía, muestra como se van apilando los números del 1 al 10 y, finalmente, muestra como se van desapilando hasta que el Stack queda sin elementos. ¡Te animo a que lo ejecutes para acabar de dominar los métodos de esta clase!

import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        var numStack = new Stack<Integer>();

        // apilar
        for (int i = 1; i < 11; i++) {
            numStack.push(i);
            System.out.println("Apilando elemento: " + i + " / pila -> " + numStack);
        }

        System.out.println();

        // desapilar
        while (!numStack.empty()) {
            numStack.pop();
            System.out.println("Desapilando elemento" + " / pila -> " + numStack);
        }
    }
}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Estoy de acuerdo con que el responsable de la web Aprendiz de Programación use los datos proporcionados en este comentario para poder comunicarse de forma efectiva.

Scroll al inicio