כיצד ליישם תור עדיפות בג'אווה?



מאמר זה יציג בפניכם נושא מעניין נוסף בתחום התכנות שהוא Priority Queue ב- Java יחד עם הדגמה

עדיפות תור בג'אווה משמש כאשר האובייקטים אמורים להיות מעובדים על סמך העדיפות. מאמר זה יעזור לך לחקור את המושג בפירוט. המצביעים הבאים יוסקרו במאמר זה,

אז בואו נתחיל אז,





תור עדיפות בג'אווה

כפי שכבר צוין, נעשה שימוש ב- PriorityQueue כאשר האובייקטים אמורים להיות מעובדים על סמך העדיפות. ידוע כי תור עוקב אחר אלגוריתם First-In-First-Out, אך לעיתים יש צורך לעבד את אלמנטים של התור על פי העדיפות, אז נכנס לתפקיד PriorityQueue. PriorityQueue מבוסס על ערימת העדיפות. אלמנטים של תור עדיפות מסודרים על פי הסדר הטבעי, או על ידי משווה המסופק בזמן בניית התור, תלוי באיזה קונסטרוקטור נעשה שימוש. כמה נקודות חשובות בתור עדיפות הן כדלקמן:

הבדל מעמדי וממשק מופשט
  • PriorityQueue אינו מאפשר מצביעי NULL.
  • איננו יכולים ליצור PriorityQueue של אובייקטים שאינם ניתנים להשוואה
  • PriorityQueue הם תורים לא מאוגדים.
  • ראש התור הזה הוא המרכיב הכי פחות ביחס להזמנה שצוינה. אם מספר אלמנטים קשורים לערך הנמוך ביותר, הראש הוא אחד מאותם היסודות - הקשרים נשברים באופן שרירותי.
  • פעולות אחזור התור סקרות, מסירות, מציצות ואלמנטים ניגשים לאלמנט שבראש התור.
  • הוא יורש שיטות ממחלק AbstractQueue, AbstractCollection, Collection ו- Object.

ממשיכים במאמר זה על Priority Queue ב- Java



הצהרת ממשק תור

ממשק ציבורי התור מרחיב את האוסף

ממשיכים במאמר זה על Priority Queue ב- Java

שיטות ממשק תור Java

שיטה תיאור

הוסף בוליאני (אובייקט)



הוא משמש להכנסת האלמנט שצוין לתור זה ולהחזרת אמת לאחר ההצלחה.

הצעה בוליאנית (אובייקט)

הוא משמש להכנסת האלמנט שצוין לתור זה.

הסרת אובייקט ()

הוא משמש לאחזור ומסיר את ראש התור הזה.

משאל אובייקטים ()

הוא משמש לאחזור ומסיר את ראש התור הזה, או להחזיר null אם התור הזה ריק.

אלמנט אובייקט ()

הוא משמש לאחזור, אך לא להסיר, את ראש התור הזה.

הצצה לאובייקט ()

הוא משמש לאחזור, אך לא להסיר, את ראש התור הזה, או מחזיר null אם התור הזה ריק.

ממשיכים במאמר זה על Priority Queue ב- Java

דוגמא

חבילה com.journaldev.collections

ייבא java.util.Comparator ייבא java.util.PriorityQueue ייבוא ​​java.util.Queue ייבא java.util.Random ציבור ציבורי PriorityQueueExample {public static void main (String [] args) {// דוגמה לסדר טבעי לתור עדיפות תור integerPriorityQueue = PriorityQueue חדש (7) ראנד אקראי = אקראי חדש () עבור (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()) } } } 

תְפוּקָה:

פלט- תור עדיפות בג

לפיכך הגענו לסוף מאמר זה בנושא 'תור עדיפות בג'אווה'. אם ברצונך ללמוד עוד, עיין ב מאת אדוריקה, חברת למידה מקוונת אמינה. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה נועד להכשיר אתכם למושגי הליבה והמתקדמים של Java יחד עם מסגרות Java שונות כמו Hibernate & Spring.

ההבדל בין מפת hash לטבלת hash

יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג זה ונחזור אליך בהקדם האפשרי.