أولوية قائمة الانتظار في جافا يُستخدم عندما يُفترض أن تتم معالجة الكائنات بناءً على الأولوية. ستساعدك هذه المقالة في استكشاف هذا المفهوم بالتفصيل. سيتم تغطية المؤشرات التالية في هذه المقالة ،
فلنبدأ إذن ،
قائمة انتظار الأولوية في Java
كما ذكرنا سابقًا ، يتم استخدام PriorityQueue عندما يُفترض أن تتم معالجة الكائنات بناءً على الأولوية. من المعروف أن قائمة الانتظار تتبع خوارزمية First-In-First-Out ، ولكن في بعض الأحيان تكون هناك حاجة إلى معالجة عناصر قائمة الانتظار وفقًا للأولوية ، وذلك عندما يتم تشغيل PriorityQueue. يستند PriorityQueue إلى كومة الأولوية. يتم ترتيب عناصر قائمة انتظار الأولوية وفقًا للترتيب الطبيعي ، أو عن طريق المقارنة التي يتم توفيرها في وقت إنشاء قائمة الانتظار ، اعتمادًا على المُنشئ المستخدم. بعض النقاط المهمة في قائمة انتظار الأولوية هي كما يلي:
- لا يسمح PriorityQueue بمؤشرات NULL.
- لا يمكننا إنشاء PriorityQueue للكائنات غير القابلة للمقارنة
- PriorityQueue هي قوائم انتظار غير منضمة.
- رأس قائمة الانتظار هذه هو العنصر الأقل فيما يتعلق بالترتيب المحدد. إذا تم ربط عدة عناصر بأقل قيمة ، يكون الرأس أحد هذه العناصر - يتم قطع الروابط بشكل تعسفي.
- تقوم عمليات استرداد قائمة الانتظار بالاستقصاء والإزالة والنظرة الخاطفة والوصول إلى العنصر الموجود في رأس قائمة الانتظار.
- يرث طرقًا من AbstractQueue و AbstractCollection و Collection و Object class.
المضي قدمًا في هذه المقالة حول قائمة انتظار الأولوية في Java
إعلان واجهة قائمة الانتظار
قائمة انتظار الواجهة العامة تمتد المجموعة
برنامج c ++ لفرز المصفوفة بترتيب تصاعدي
المضي قدمًا في هذه المقالة حول قائمة انتظار الأولوية في Java
طرق واجهة Java Queue Interface
طريقة | وصف |
إضافة منطقية (كائن) | يتم استخدامه لإدراج العنصر المحدد في قائمة الانتظار هذه والعودة صحيحًا عند النجاح. |
عرض منطقي (كائن) دمج كود المصدر c ++ | يتم استخدامه لإدراج العنصر المحدد في قائمة الانتظار هذه. |
إزالة الكائن () | يتم استخدامه لاسترداد وإزالة رأس قائمة الانتظار هذه. |
استطلاع كائن () | يتم استخدامه لاسترداد وإزالة رأس قائمة الانتظار هذه ، أو إرجاع قيمة فارغة إذا كانت قائمة الانتظار هذه فارغة. |
عنصر الكائن () | يتم استخدامه لاسترداد رأس قائمة الانتظار هذه ولكن لا يزيله. ما هو المصنع في angularjs |
نظرة خاطفة على الكائن () | يتم استخدامه لاسترداد رأس قائمة الانتظار هذه ، ولكن لا يزيله ، أو يعيد القيمة فارغة إذا كانت قائمة الانتظار هذه فارغة. |
المضي قدمًا في هذه المقالة حول أولوية قائمة الانتظار في جافا
مثال
حزمة 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) {// natural ordering example of the priority queue Queue validerPriorityQueue = new PriorityQueue (7) Random rand = new Random () لـ (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()) } } }
انتاج:
وهكذا وصلنا إلى نهاية هذه المقالة حول 'قائمة انتظار الأولوية في جافا'. إذا كنت ترغب في معرفة المزيد ، تحقق من بواسطة Edureka ، شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.
لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.