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:
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.