Queue (para filas e processamento por ordem)
Implementações principais: LinkedList (como fila), PriorityQueue
Motivo: Usada em operações onde a ordem de processamento é importante.
1. O que é Queue?
- Interface da Java Collections Framework.
- Representa uma estrutura de dados do tipo fila (FIFO – First In, First Out).
- Utilizada para processar elementos na ordem em que foram inseridos.
2. Implementações principais
- 2.1. LinkedList como Queue
- A classe LinkedList implementa a interface Queue.
- Pode ser usada como uma fila comum (FIFO).
Exemplo:
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<String> fila = new LinkedList<>();
// Adicionando elementos à fila
fila.add("A");
fila.add("B");
fila.add("C");
System.out.println("Fila: " + fila); // [A, B, C]
// Removendo elementos na ordem de chegada (FIFO)
System.out.println("Removido: " + fila.poll()); // A
System.out.println("Nova fila: " + fila); // [B, C]
}
}
2.2. PriorityQueue
- Não garante ordem FIFO, mas ordena os elementos conforme prioridade.
- Utilizada quando a ordem de processamento depende da prioridade dos elementos.
import java.util.PriorityQueue;
public class PriorityQueueExample {
public static void main(String[] args) {
PriorityQueue<Integer> filaPrioridade = new PriorityQueue<>();
filaPrioridade.add(30);
filaPrioridade.add(10);
filaPrioridade.add(20);
System.out.println("Fila de prioridade: " + filaPrioridade); // A ordem pode não ser óbvia
// Removendo elementos na ordem de prioridade (menor primeiro)
System.out.println("Removido: " + filaPrioridade.poll()); // 10
System.out.println("Removido: " + filaPrioridade.poll()); // 20
System.out.println("Removido: " + filaPrioridade.poll()); // 30
}
}
3. Métodos principais de Queue
4. Quando usar Queue?
- Processamento de tarefas: Exemplo, filas de impressão, filas de pedidos.
- Sistemas de mensagens: Exemplo, mensagens de chat processadas na ordem de chegada.
- Algoritmos de busca: Exemplo, BFS (Busca em Largura) em grafos.
- Eventos em jogos: Exemplo, fila de eventos em jogos multiplayer.
Top comments (0)