شرح قائمة الانتظار في API:
قائمة انتظار الواجهة العامة <e> تمتد المجموعة <e>
المجموعة المستخدمة للحفاظ على العناصر قبل معالجة العناصر. بالإضافة إلى عملية التجميع الأساسية ، توفر قائمة الانتظار أيضًا عمليات الإدراج والاستخراج والتفتيش الأخرى. هناك نوعان من كل طريقة: أحدهما يلقي خللًا (عند فشل العملية) ، ويعيد الآخر قيمة خاصة (خالية أو خاطئة ، اعتمادًا على العملية). تم تصميم الشكل الأخير من عمليات الإدراج لقائم انتظار ، وهو متخصص في قيود السعة ؛
عادة ما تكون قائمة الانتظار (ولكن ليس بالضرورة) لفرز كل عنصر في شكل FIFO (متقدم أولاً). ومع ذلك ، فإن قائمة انتظار الأولوية وقائمة انتظار LIFO (أو المكدس) ، والاستثناء السابق ، يقوم بفرز العناصر بناءً على الترتيب الطبيعي للمقارنة أو العنصر ، وفرز العناصر الأخيرة وفقًا لـ LIFO (اتبعها أولاً). بغض النظر عن طريقة الفرز التي يتم استخدامها ، فإن رأس قائمة الانتظار هو العنصر الذي تم إزالته عن طريق الاتصال () أو الاستطلاع (). في قائمة انتظار FIFO ، يتم إدخال جميع العناصر الجديدة في نهاية قائمة الانتظار. قد تستخدم أنواع قوائم الانتظار الأخرى قواعد وضع العناصر المختلفة. يجب أن يحدد كل تطبيق قائمة انتظار سمات طلبه.
إذا أمكن ، يمكن إدراج طريقة العرض في عنصر ، وإلا فإنها ستعود كاذبة. هذا يختلف عن طريقة المجموعة. يتم استخدام تصميم طريقة العرض للفشل العادي ، وليس المواقف غير الطبيعية ، كما هو الحال في قائمة انتظار ثابت (الحدود).
يمكن إزالة طرق () و Poll () وإعادتها إلى رأس قائمة الانتظار. في النهاية ، يتم إزالته من قائمة الانتظار هو وظيفة استراتيجية فرز قائمة الانتظار ، وهذه الاستراتيجية مختلفة في التطبيقات المختلفة. تختلف طرق إزالة () والاستطلاع () فقط عندما تكون قائمة الانتظار فارغة: إزالة () طريقة ترمي استثناء ، وإرجاع طريقة الاستطلاع ().
العنصر () و PEEK () عودة ، ولكن لم تتم إزالته ، رأس قائمة الانتظار.
لا تحدد واجهة قائمة الانتظار طريقة منع قائمة الانتظار ، وهذا أمر شائع جدًا في البرمجة المتزامنة. تحدد واجهة blockingqueue طريقة المساحة المتاحة في ظهور عناصر الانتظار أو انتظار قائمة الانتظار ، والتي توسع هذه الواجهة.
عادةً ما لا يُسمح بتنفيذ قائمة الانتظار بإدراج عناصر فارغة ، على الرغم من أنه لا يمكن منع بعض التنفيذ (مثل LinkedList) من إدخال NULL. حتى في تنفيذ NULL ، لا ينبغي إدراج NULL في قائمة الانتظار ، لأن NULL يستخدم أيضًا كقيمة إرجاع خاصة لطريقة الاستطلاع ، مما يشير إلى أن قائمة الانتظار لا تحتوي على عناصر.
تقوم قائمة الانتظار بتنفيذ الإصدارات القائمة على العناصر من أساليب المساواة وأساليب التجزئة ، ولكنها ورثت النسخة القائمة على الهوية من فئة الكائن ، لأنه بالنسبة لدرجات الانتظار مع نفس العناصر ، فإن الطبيعة المتساوية للعناصر ليست دائمًا نفس الطبيعة .
استخدم قائمة انتظار في Java لمحاكاة مجموعة LinkedList
طرق باستخدام مجموعة LinkedList واستخدام عمليات قائمة انتظار المحاكاة الجماعية API
طابور
addlast void (e e) ؛
طابور
e removeFirst () ؛
كن فارغا
Boolean Isempty () ؛
على سبيل المثال رمز
Package Corejavaone ؛ public void enqueue (int data) {this.queue.addlast (data) ؛} public int dequeue () يلقي nocomentexception {return this.queue.remove first () ؛} = New SimulatingQueue () ؛ println (البيانات) ؛}}}