Kuidas Java-s prioriteetset järjekorda rakendada?



See artikkel tutvustab teile veel üht huvitavat teemat programmeerimisdomeenis, mis on Java prioriteetne järjekord koos demonstreerimisega

Prioriteet Järjekord Java-s kasutatakse juhul, kui objekte peaks töödeldama prioriteedi alusel. See artikkel aitab teil seda kontseptsiooni üksikasjalikult uurida. Järgmisi näpunäiteid käsitletakse selles artiklis,

Alustagem siis





Prioriteetne järjekord Java-s

Nagu juba mainitud, kasutatakse prioriteedijärjekorda juhul, kui objekte eeldatakse prioriteedi alusel töödelda. On teada, et järjekord järgneb First-In-First-Out algoritmile, kuid mõnikord on vaja järjekorra elemente töödelda vastavalt prioriteedile, just siis, kui mängib PriorityQueue. PriorityQueue põhineb prioriteetsel hunnikul. Prioriteedijärjekorra elemendid on tellitud vastavalt loomulikule järjestusele või järjekorra ehitamise ajal pakutava võrdleja poolt, sõltuvalt sellest, millist konstruktorit kasutatakse. Mõni oluline punkt prioriteetsuse järjekorras on järgmine:

  • PriorityQueue ei luba NULL-i osutajaid.
  • Me ei saa luua PriorityQueue'i objekte, mis pole võrreldavad
  • PriorityQueue on sidumata järjekorrad.
  • Selle järjekorra pea on määratud järjestuse osas kõige vähem element. Kui mitu elementi seotakse vähima väärtuse saamiseks, on pea üks neist elementidest - sidemed katkevad meelevaldselt.
  • Järjekorra otsimise toimingud küsitlevad, eemaldavad, piiluvad ja elemendil on juurdepääs järjekorra ees olevale elemendile.
  • See pärib meetodid klassist AbstractQueue, AbstractCollection, Collection ja Object.

Selle artikliga edasi liikumine Java prioriteedijärjekorra kohta



Järjekorra liidese deklaratsioon

avaliku liidese järjekord laiendab kogu

Selle artikliga edasi liikumine Java prioriteedijärjekorra kohta

Java järjekorra liidese meetodid

Meetod Kirjeldus

boolean add (objekt)



abstraktne klass ja liidese erinevus

Seda kasutatakse selleks, et sisestada määratud element sellesse järjekorda ja naasta edukuse korral tõeseks.

tõeväärtusega pakkumine (objekt)

Seda kasutatakse määratud elemendi lisamiseks sellesse järjekorda.

Objekti eemaldamine ()

Seda kasutatakse selle järjekorra pea otsimiseks ja eemaldamiseks.

Objekti küsitlus ()

Seda kasutatakse selle järjekorra otsimiseks ja eemaldamiseks või tagastatakse null, kui see järjekord on tühi.

Objekti element ()

Seda kasutatakse selle järjekorra pea otsimiseks, kuid see ei eemalda.

Objekti piilumine ()

Seda kasutatakse selle järjekorra pea otsimiseks, kuid see ei eemalda, või tagastab tühja, kui see järjekord on tühi.

Selle artikliga edasi liikumine Java prioriteedijärjekorra kohta

Näide

pakett 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) {// prioriteetse järjekorra loomuliku järjekorra näide Queue integerPriorityQueue = uus PriorityQueue (7) Juhuslik rand = uus Juhuslik () (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()) } } } 

Väljund:

Väljund - prioriteetne järjekord Java-Edurekas

Nii oleme jõudnud selle artikli „Java prioriteetne järjekord” lõppu. Kui soovite rohkem teada saada, vaadake järgmist autor Edureka, usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java-põhimõistete kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.