DEV Community

Queue<E> (para filas e processamento por ordem)

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]
    }
}

Enter fullscreen mode Exit fullscreen mode

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
    }
}

Enter fullscreen mode Exit fullscreen mode

3. Métodos principais de Queue

Image description

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)