עדיפות תור בג'אווה משמש כאשר האובייקטים אמורים להיות מעובדים על סמך העדיפות. מאמר זה יעזור לך לחקור את המושג בפירוט. המצביעים הבאים יוסקרו במאמר זה,
אז בואו נתחיל אז,
תור עדיפות בג'אווה
כפי שכבר צוין, נעשה שימוש ב- 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
יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות בבלוג זה ונחזור אליך בהקדם האפשרי.