Hoe prioriteitswachtrij in Java te implementeren?



Dit artikel laat je kennismaken met nog een ander interessant onderwerp in het programmeerdomein: Priority Queue In Java, samen met demonstratie

Een prioriteit Wachtrij in Java wordt gebruikt wanneer de objecten moeten worden verwerkt op basis van de prioriteit. Dit artikel helpt je dit concept in detail te verkennen. De volgende tips komen in dit artikel aan bod:

Dus laten we beginnen,





Prioriteitswachtrij in Java

Zoals reeds vermeld, wordt een PriorityQueue gebruikt wanneer de objecten moeten worden verwerkt op basis van de prioriteit. Het is bekend dat een wachtrij het First-In-First-Out-algoritme volgt, maar soms moeten de elementen van de wachtrij worden verwerkt volgens de prioriteit, dat is wanneer de PriorityQueue in het spel komt. De PriorityQueue is gebaseerd op de prioriteitsheap. De elementen van de prioriteitswachtrij worden geordend volgens de natuurlijke volgorde, of door een comparator die wordt verstrekt tijdens de bouwtijd van de wachtrij, afhankelijk van welke constructor wordt gebruikt. Enkele belangrijke punten met betrekking tot Priority Queue zijn als volgt:

hoe de tostring-methode in java te gebruiken
  • PriorityQueue staat geen NULL-aanwijzers toe.
  • We kunnen geen PriorityQueue van objecten maken die niet vergelijkbaar zijn
  • PriorityQueue zijn ongebonden wachtrijen.
  • De kop van deze wachtrij is het minste element met betrekking tot de gespecificeerde volgorde. Als meerdere elementen zijn verbonden met de minste waarde, is het hoofd een van die elementen - banden worden willekeurig verbroken.
  • De bewerkingen voor het ophalen van de wachtrij vragen, verwijderen, bekijken en het element benaderen het element aan de kop van de wachtrij.
  • Het neemt methoden over van de klasse AbstractQueue, AbstractCollection, Collection en Object.

Verderop met dit artikel over Priority Queue in Java



Wachtrij-interface declaratie

openbare interface Wachtrij breidt collectie uit

Verderop met dit artikel over Priority Queue in Java

Methoden van Java Queue Interface

Methode Omschrijving

boolean add (object)



Het wordt gebruikt om het opgegeven element in deze wachtrij in te voegen en true terug te geven bij succes.

boolean offer (object)

Het wordt gebruikt om het opgegeven element in deze wachtrij in te voegen.

Object verwijderen ()

Het wordt gebruikt om de kop van deze wachtrij op te halen en te verwijderen.

Objectpeiling ()

Het wordt gebruikt om de kop van deze wachtrij op te halen en te verwijderen, of retourneert null als deze wachtrij leeg is.

Objectelement ()

Het wordt gebruikt om de kop van deze wachtrij op te halen, maar niet te verwijderen.

Object peek ()

Het wordt gebruikt om de kop van deze wachtrij op te halen, maar niet te verwijderen, of retourneert null als deze wachtrij leeg is.

Verderop met dit artikel over Priority Queue in Java

Voorbeeld

pakket 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) {// natuurlijke volgorde voorbeeld van prioriteit wachtrij Wachtrij integerPriorityQueue = new PriorityQueue (7) Willekeurige rand = nieuwe Willekeurige () voor (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()) } } } 

Uitgang:

Uitvoer- Prioriteitswachtrij in Java- Edureka

Hiermee zijn we aan het einde gekomen van dit artikel over ‘Priority Queue in Java’. Als je meer wilt weten, bekijk dan de door Edureka, een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.