PriorityQueue.

Serie - Fundamentos de Estrutura de Dados Elementar com Java.


PriorityQueue. Como funciona Queue.

  Como visto na estrutura de dados Stack, a Stack opera com o princípio LIFO (Last-In-First-Out), onde o último elemento a entrar é o primeiro a sair. Agora, vamos direcionar nossa atenção para a intrigante PriorityQueue.

  Ao contrário da Stack, a PriorityQueue segue o princípio FIFO (First-In-First-Out). Nesse contexto, o primeiro elemento a entrar é o último a sair, replicando o comportamento de uma fila comum. Essa reviravolta na lógica de ordenação é útil em situações em que a prioridade dos elementos é crucial. O que é útil em situações em que a prioridade dos elementos é crucial.

  exemplo em código:

var numbersQueue = new PriorityQueue<Integer>();
numbersQueue.add(2);
numbersQueue.add(3);
numbersQueue.add(5);
System.out.println(numbersQueue);
numbersQueue.poll();
System.out.println(numbersQueue);
Output (clique)

  [2, 3, 5]
  [3, 5]

  imagem mental:

  PriorityQueue Java

Vantagens e Desvantagens

Vantagens
  • 1 - Mantém os elementos em ordem natural ou com base em um comparador, permitindo acesso eficiente ao elemento de maior prioridade.
  • 2 - Implementa uma fila de prioridade eficiente. FIFO - First In, First Out.
Desvantagens
  • 1 - Não fornece acesso eficiente a elementos arbitrários; a remoção é restrita ao elemento de maior prioridade.
  • 2 - A remoção e atualização de elementos específicos são menos eficientes que em outras estruturas, em termos de flexibilidade.

Uso comum

  Implementação de filas de prioridade em algoritmos como Dijkstra ou algoritmos de roteamento.

  Cenário de uso: Em um sistema de despacho de tarefas, uma PriorityQueue pode ser usada para priorizar e executar tarefas com base em sua urgência ou importância. Como o SQS da AWS, onde as requisições são processadas por ordem de chegada.