Saltar al contenido principal
Publicado el

Clase Stack en Java

Compartir:

Introducción

La estructura de datos de tipo "pila" es una de las más esenciales en ciencias de la computación. En Java, la clase Stack proporciona una implementación eficiente de este tipo de estructura.

Características de la Clase Stack

  1. LIFO (Last In - First Out): La característica principal de la pila es que el último elemento insertado es el primero en ser eliminado.
  2. Dinámica: La clase Stack crece y se reduce dinámicamente a medida que se agregan o eliminan elementos.
  3. Métodos fundamentales: push(), pop() y peek() son los métodos más utilizados en una pila.

¿Cuándo usar la Clase Stack?

La pila se utiliza generalmente en situaciones donde el orden de procesamiento debe seguir la regla LIFO. Algunas aplicaciones típicas incluyen:

  • Validar expresiones con paréntesis balanceados.
  • Implementación de funciones de "deshacer" en editores.
  • Navegación de páginas en navegadores web (botones de atrás y adelante).
  • Conversión de expresiones infijas a postfijas.
package com.caffeinealgorithm.programaremjava;

import java.util.Stack;

public class ClasePila {
  private Stack<Integer> pila = new Stack<>();
  private int multiplicador = 10, numero = 1;

  public void Run() {
    for (int indice = 1; indice <= 5; indice++) {
      pila.push(numero);
      numero *= multiplicador;
    }

    imprimirPila();

    System.out.printf("\nEliminando el número %d de la pila con el método pop().\n\n", pila.pop());

    imprimirPila();

    System.out.printf("\nEl siguiente número a eliminar de la pila es el %d.", pila.peek());
  }

  private void imprimirPila() {
    for (int numero : pila)
      System.out.println(numero);
  }
}

/*
  1
  10
  100
  1000
  10000

  Eliminando el número 10000 de la pila con el método pop().

  1
  10
  100
  1000

  El siguiente número a eliminar de la pila es el 1000.
*/

Métodos Adicionales de la Clase Stack

  • isEmpty(): Devuelve verdadero si la pila está vacía.
  • search(Object o): Devuelve la posición de un objeto en la pila, con el conteo comenzando desde la cima (el elemento 1 es la cima).
  • size(): Devuelve el número de elementos en la pila.
  • clear(): Elimina todos los elementos de la pila.

Limitaciones y Consideraciones

Aunque la clase Stack es útil, en muchos escenarios modernos es preferible usar la clase Deque en lugar de Stack debido a su mayor flexibilidad y capacidad para ser utilizada tanto como pila como cola.

Conclusión

La clase Stack es una implementación vital y clásica de la estructura de datos pila en Java. Saber cómo y cuándo usarla es crucial para muchos algoritmos y aplicaciones. Aprender sus métodos y características es un paso esencial para convertirse en un desarrollador Java competente.

Happy coding!