flowchart LR A["Enqueue(10)"] --> B["Enqueue(20)"] --> C["Enqueue(30)"] subgraph Cola A1["Front: 10"] --> A2["20"] --> A3["Rear: 30"] end
Una cola (Queue) es una estructura FIFO:
> First In, First Out — el primero en entrar, es el primero en salir.
Las colas se usan cuando un recurso compartido debe atender múltiples consumidores en orden.
🖨️ Impresoras → gestionan trabajos en orden.
💻 Sistemas operativos → gestionan procesos.
🌐 Servidores → gestionan solicitudes web.
💬 Chat de soporte → atiende clientes uno por uno.
En Java, Queue es una interfaz, no una clase.
Eso significa que no se puede instanciar directamente.
💬
“Las interfaces son contratos: definen qué métodos deben implementar las clases que las usan.”
Podemos buscar su documentación oficial: 👉 Java Queue Interface — Oracle Docs
Allí encontramos que Queue declara métodos como:
| Método | Descripción | Si falla… |
|---|---|---|
add() / offer() |
Encolar elemento | add() lanza excepción; offer() devuelve false |
remove() / poll() |
Desencolar elemento | remove() lanza excepción; poll() devuelve null |
element() / peek() |
Ver frente de la cola | element() lanza excepción; peek() devuelve null |
La interfaz Queue tiene varias implementaciones. Las más usadas son:
LinkedList → basada en nodos enlazadosArrayDeque → basada en un arreglo dinámico (doble extremo)👉 Usarás estas dos el 90% de las veces.
Veamos cómo usar una ArrayDeque como cola:
🎬 👉 10 entra primero → está al frente. 👉 30 entra al final → está al fondo.
🧩 Salida:
Eliminado: 10
Cola actual: [20, 30]
🔹 Se elimina siempre el frente. 🔹 Los nuevos elementos se agregan al final.
flowchart LR A["Enqueue(10)"] --> B["Enqueue(20)"] --> C["Enqueue(30)"] subgraph Cola A1["Front: 10"] --> A2["20"] --> A3["Rear: 30"] end
🧭
add() → inserta al finalremove() → saca del frentepeek() → consulta sin eliminar✅ Queue es una interfaz (no se instancia). ✅ Usamos LinkedList o ArrayDeque como implementaciones. ✅ Sus operaciones básicas son constantes (O(1)). ✅ Ideal para modelar procesos en espera, tareas o flujos secuenciales.