Sådan implementeres prioritetskø i Java?



Denne artikel introducerer dig til endnu et interessant emne i programmeringsdomænet, der er Priority Queue in Java sammen med demonstration

En prioritet Kø i Java bruges, når objekterne skal behandles baseret på prioriteten. Denne artikel hjælper dig med at udforske dette koncept i detaljer. Følgende punkter vil blive dækket i denne artikel,

Så lad os komme i gang dengang,





Prioritetskø i Java

Som allerede nævnt bruges en PriorityQueue, når objekterne skal behandles baseret på prioriteten. Det er kendt, at en kø følger First-In-First-Out-algoritmen, men nogle gange er det nødvendigt, at elementerne i køen behandles i henhold til prioriteten, det er når PriorityQue kommer i spil. PriorityQueue er baseret på den prioriterede bunke. Elementerne i prioritetskøen bestilles i henhold til den naturlige rækkefølge eller af en komparator, der leveres ved køkonstruktionstid, afhængigt af hvilken konstruktør der bruges. Få vigtige punkter i prioritetskø er som følger:

  • PriorityQueue tillader ikke NULL-markører.
  • Vi kan ikke oprette PriorityQueue af objekter, der ikke kan sammenlignes
  • PriorityQueue er ubundet kø.
  • Hovedet på denne kø er det mindste element i forhold til den specificerede rækkefølge. Hvis flere elementer er bundet til mindst mulig værdi, er hovedet et af disse elementer - bånd brydes vilkårligt.
  • Køhentningsoperationerne afstemmer, fjerner, kigger og får adgang til elementet i toppen af ​​køen.
  • Det arver metoder fra AbstractQueue, AbstractCollection, Collection og Object klasse.

Fortsætter med denne artikel om Priority Queue i Java



Kø-interface-erklæring

offentlig grænseflade Kø udvider samling

Fortsætter med denne artikel om Priority Queue i Java

Metoder til Java-køgrænseflade

Metode Beskrivelse

boolsk tilføjelse (objekt)



Det bruges til at indsætte det angivne element i denne kø og returnere sandt efter succes.

boolsk tilbud (objekt)

Det bruges til at indsætte det angivne element i denne kø.

Fjern objekt ()

Det bruges til at hente og fjerne hovedet på denne kø.

Objektafstemning ()

Det bruges til at hente og fjerne hovedet på denne kø eller returnere null, hvis denne kø er tom.

Objektelement ()

Det bruges til at hente, men fjerner ikke, hovedet på denne kø.

Objektkig ()

Det bruges til at hente, men fjerner ikke, hovedet på denne kø eller returnerer null, hvis denne kø er tom.

forudsætninger for at lære maskinindlæring

Fortsætter med denne artikel om Priority Queue i Java

Eksempel

pakke 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) {// naturlig bestillingseksempel på prioritetskø Kø heltalPriorityQueue = ny PriorityQueue (7) Tilfældig rand = ny Random () for (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()) } } } 

Produktion:

Output- Prioritetskø i Java- Edureka

Således er vi nået til slutningen af ​​denne artikel om 'Priority Queue in Java'. Hvis du ønsker at lære mere, skal du tjekke af Edureka, et betroet online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.