Joyanes recomienda usar Deque sobre Stack por eficiencia.

import java.util.ArrayDeque;
import java.util.Deque;

public class PilaJoyanes public static void main(String[] args) Deque<Integer> pila = new ArrayDeque<>();

    // Push (apilar)
    pila.push(10);
    pila.push(20);
    pila.push(30);
// Pop (desapilar)
    System.out.println("Sacando: " + pila.pop()); // 30
    System.out.println("Tope actual: " + pila.peek()); // 20 (sin remover)
// Aplicación real: Invertir una cadena
    String texto = "JOYANES";
    Deque<Character> pilaTexto = new ArrayDeque<>();
    for (char c : texto.toCharArray()) pilaTexto.push(c);
StringBuilder invertido = new StringBuilder();
    while (!pilaTexto.isEmpty()) invertido.append(pilaTexto.pop());
System.out.println(invertido); // "SENAYOJ"

Joyanes provides Java implementations for classic algorithms.


import java.util.LinkedList;
import java.util.Queue;

public class ColaJoyanes public static void main(String[] args) // LinkedList implementa Queue Queue<String> colaImpresion = new LinkedList<>();

    // Encolar
    colaImpresion.offer("Documento1.pdf");
    colaImpresion.offer("Foto.jpg");
    colaImpresion.offer("Tesis.docx");
// Desencolar (procesar)
    while (!colaImpresion.isEmpty()) 
        System.out.println("Procesando: " + colaImpresion.poll());
// Salida: Documento1.pdf, Foto.jpg, Tesis.docx

// Capacidad fija: 10 elementos. No puede crecer.
int[] calificaciones = new int[10]; 

Problema: Si necesita el elemento 11, debe crear un nuevo array y copiar los datos (operación O(n)).

Secret Link