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)).