كيف يتم تنفيذ قائمة انتظار الأولوية في Java؟



ستقدم لك هذه المقالة موضوعًا آخر مثيرًا للاهتمام في مجال البرمجة وهو قائمة انتظار الأولوية في Java جنبًا إلى جنب مع العرض التوضيحي

أولوية قائمة الانتظار في جافا يُستخدم عندما يُفترض أن تتم معالجة الكائنات بناءً على الأولوية. ستساعدك هذه المقالة في استكشاف هذا المفهوم بالتفصيل. سيتم تغطية المؤشرات التالية في هذه المقالة ،

فلنبدأ إذن ،





قائمة انتظار الأولوية في 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()) } } } 

انتاج:

الإخراج- أولوية قائمة الانتظار في Java- Edureka

وهكذا وصلنا إلى نهاية هذه المقالة حول 'قائمة انتظار الأولوية في جافا'. إذا كنت ترغب في معرفة المزيد ، تحقق من بواسطة Edureka ، شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.