A Queue (Fila) é uma estrutura de dados que segue o princípio FIFO – First In, First Out:
o primeiro a entrar é o primeiro a sair.
📘 Em Java, Queue pertence ao pacote java.util e é amplamente utilizada quando a ordem de processamento é fundamental — filas de atendimento, eventos, tarefas assíncronas e muito mais.
O primeiro elemento inserido é sempre o primeiro a ser removido.
📌 Como uma fila organizada de missões — quem chega primeiro recebe a tarefa primeiro.
| Implementação | Características |
|---|---|
| 🔗 LinkedList | Estrutura encadeada; boa para inserção e remoção |
| ⭐ PriorityQueue | Ordena por prioridade natural ou customizada |
| 📚 ArrayDeque | Implementação moderna, eficiente e sem limite fixo |
| Método | Comportamento |
|---|---|
add() |
Insere; lança exceção caso falhe |
offer() |
Insere de forma segura (retorna false em vez de lançar erro) |
poll() |
Remove e retorna o primeiro elemento |
peek() |
Retorna o primeiro elemento sem remover |
Dica: Prefira offer() e poll() para produção → métodos mais seguros.
import java.util.LinkedList;
import java.util.Queue;
public class FilaDeMissoes {
public static void main(String[] args) {
// Criando a fila de missões
Queue<String> fila = new LinkedList<>();
// Inserindo elementos
fila.add("Operativo A");
fila.add("Operativo B");
fila.add("Operativo C");
fila.add("Operativo D");
System.out.println("📋 Ordem da fila:");
fila.forEach(n -> System.out.println("➡️ " + n));
// Verificando o primeiro da fila
System.out.println("\\n👀 Primeiro da fila: " + fila.peek());
// Processando
System.out.println("\\n✅ Processando:");
while (!fila.isEmpty()) {
System.out.println("🛡️ Missão atribuída a: " + fila.poll());
}
System.out.println("\\n🚫 Fila vazia? " + fila.isEmpty());
}
}
📋 Ordem da fila:
➡️ Operativo A
➡️ Operativo B
➡️ Operativo C
➡️ Operativo D
👀 Primeiro da fila: Operativo A
✅ Processando:
🛡️ Missão atribuída a: Operativo A
🛡️ Missão atribuída a: Operativo B
🛡️ Missão atribuída a: Operativo C
🛡️ Missão atribuída a: Operativo D
🚫 Fila vazia? true