Como implementar a fila de prioridade em Java?



Este artigo irá apresentá-lo a outro tópico interessante no domínio da programação que é Priority Queue In Java, juntamente com demonstração

Uma prioridade Fila em Java é usado quando os objetos devem ser processados ​​com base na prioridade. Este artigo o ajudará a explorar esse conceito em detalhes. As dicas a seguir serão abordadas neste artigo,

Então, vamos começar,





Fila prioritária em Java

Como já mencionado, um PriorityQueue é usado quando os objetos devem ser processados ​​com base na prioridade. É sabido que uma fila segue o algoritmo First-In-First-Out, mas às vezes os elementos da fila precisam ser processados ​​de acordo com a prioridade, ou seja, quando o PriorityQueue entra em ação. O PriorityQueue é baseado no heap de prioridade. Os elementos da fila de prioridade são ordenados de acordo com a ordem natural ou por um Comparador fornecido no momento da construção da fila, dependendo de qual construtor é usado. Alguns pontos importantes na Fila de Prioridade são os seguintes:

array unidimensional em java
  • PriorityQueue não permite ponteiros NULL.
  • Não podemos criar PriorityQueue de objetos que não são comparáveis
  • PriorityQueue são filas não ligadas.
  • O topo desta fila é o menor elemento em relação à ordem especificada. Se vários elementos forem amarrados para o menor valor, a cabeça é um desses elementos - os laços são quebrados arbitrariamente.
  • As operações de recuperação da fila pesquisam, removem, espiam e acessam o elemento no início da fila.
  • Ele herda métodos das classes AbstractQueue, AbstractCollection, Collection e Object.

Continuando com este artigo sobre Fila prioritária em Java



Declaração de interface de fila

A interface pública Queue estende a coleção

Continuando com este artigo sobre Fila prioritária em Java

Métodos de Java Queue Interface

Método Descrição

boolean add (objeto)



É usado para inserir o elemento especificado nesta fila e retornar verdadeiro em caso de sucesso.

oferta booleana (objeto)

Ele é usado para inserir o elemento especificado nesta fila.

Remover objeto ()

Ele é usado para recuperar e remover o início desta fila.

Pesquisa de objeto ()

Ele é usado para recuperar e remover o início desta fila ou retorna nulo se a fila estiver vazia.

como usar java swing

Elemento de objeto ()

strings em java são imutáveis

Ele é usado para recuperar, mas não remove, o topo dessa fila.

Objeto peek ()

Ele é usado para recuperar, mas não remove, o cabeçalho desta fila ou retorna nulo se a fila estiver vazia.

Continuando com este artigo sobre Fila prioritária em Java

Exemplo

pacote com.journaldev.collections

import java.util.Comparator import java.util.PriorityQueue import java.util.Queue import java.util.Random public class PriorityQueueExample {public static void main (String [] args) {// exemplo de ordenação natural da fila de prioridade integerPriorityQueue = new PriorityQueue (7) Random rand = new Random () para (int i = 0i<7i++){ integerPriorityQueue.add(new Integer(rand.nextInt(100))) } for(int i=0i<7i++){ Integer in = integerPriorityQueue.poll() System.out.println('Processing Integer:'+in) } //PriorityQueue example with Comparator Queue customerPriorityQueue = new PriorityQueue(7, idComparator) addDataToQueue(customerPriorityQueue) pollDataFromQueue(customerPriorityQueue) } //Comparator anonymous class implementation public static Comparator idComparator = new Comparator(){ @Override public int compare(Customer c1, Customer c2) { return (int) (c1.getId() - c2.getId()) } } //utility method to add random data to Queue private static void addDataToQueue(Queue customerPriorityQueue) { Random rand = new Random() for(int i=0 i<7 i++){ int id = rand.nextInt(100) customerPriorityQueue.add(new Customer(id, 'Pankaj '+id)) } } //utility method to poll data from queue private static void pollDataFromQueue(Queue customerPriorityQueue) { while(true){ Customer cust = customerPriorityQueue.poll() if(cust == null) break System.out.println('Processing Customer with ID='+cust.getId()) } } } 

Resultado:

Output- Priority Queue in Java- Edureka

Assim, chegamos ao final deste artigo sobre ‘Priority Queue in Java’. Se você deseja saber mais, confira o pela Edureka, uma empresa de aprendizagem online confiável. O curso de certificação e treinamento Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para os conceitos básicos e avançados do Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.