قائمة انتظار جافا: كل ما تحتاج لمعرفته حول قائمة الانتظار في جافا



في هذه المقالة ، سنتخذ بنية بيانات Java شائعة تُعرف باسم Java Queue. سنستخدم أيضًا أمثلة برمجية مناسبة لفهم أفضل.

هي لغة برمجة قوية وهي تدعم هياكل البيانات المختلفة لتسهيل حياة المبرمجين. في هذه المقالة سوف نلقي نظرة على بنية البيانات هذه وهي Java Queue. هذه هي المؤشرات التي تركز عليها هذه المقالة ،

دعونا نبدأ بعد ذلك ،





قائمة الانتظار في جافا

قائمة الانتظار هي بنية بيانات تتبع مبدأ FIFO (First-In-First-Out) أي يتم إدراج العناصر في نهاية القائمة ، ويتم حذفها من بداية القائمة. هذه الواجهة متاحة في java.util.package وتوسع واجهة المجموعة.

قائمة الانتظار تدعم أساليب متعددة ، بما في ذلك الإدراج والحذف. تُعرف قوائم الانتظار المتوفرة في java.util.package باسم طوابير غير محدودة ، في حين أن قوائم الانتظار الموجودة في الحزمة java.util.concurrent معروفة قوائم الانتظار المقيدة.



تدعم جميع قوائم الانتظار ، باستثناء Deques ، الإدراج في النهاية والحذف من المقدمة. تدعم Deques إدراج وحذف العناصر في كلا الطرفين.

دعنا ننتقل إلى الموضوع التالي من هذه المقالة حول Java Queue ،

تنفيذ Java Queue

من أجل استخدام واجهة قائمة الانتظار ، نحتاج إلى إنشاء فئة محددة. فيما يلي بعض التطبيقات التي يمكن استخدامها:



  • use.LinkedList
  • الاستفادة. الأولوية

نظرًا لأن هذه التطبيقات ليست آمنة ، فإن PriorityBlockingQueue يعمل كبديل للتنفيذ الآمن لمؤشر الترابط.

مثال:

قائمة الانتظار q1 = جديد LinkedList ()
قائمة الانتظار q2 = new PriorityQueue ()

دعونا نلقي نظرة على بعض طرق Java Queue المهمة ،

الطرق في Java Queue

  • إضافة (): تُستخدم طريقة add () لإدراج عناصر في نهاية قائمة الانتظار أو في ذيلها. الطريقة موروثة من واجهة المجموعة.
  • عرض(): تُفضل طريقة offer () على طريقة add () ، حيث تُدخل العنصر المحدد في قائمة الانتظار دون انتهاك أي قيود على السعة.
  • نظرة خاطفة (): يتم استخدام طريقة peek () للنظر إلى مقدمة قائمة الانتظار دون إزالتها. إذا كانت قائمة الانتظار فارغة ، فإنها ترجع قيمة فارغة.
  • جزء(): إذا كانت قائمة الانتظار فارغة ، فإن الأسلوب يرمي NoSuchElementException.
  • إزالة(): تقوم طريقة الإزالة () بإزالة مقدمة قائمة الانتظار وإعادتها. يطرح NoSuchElementException إذا كانت قائمة الانتظار فارغة.
  • تصويت(): تقوم طريقة الاستطلاع () بإزالة بداية قائمة الانتظار وإعادتها. إذا كانت قائمة الانتظار فارغة ، فإنها ترجع قيمة فارغة.

يتم تقديم لمحة عامة عن الطرق التالية على النحو التالي:

عملية

يرمي استثناء

إرجاع القيمة

جافا نسخة ضحلة مقابل نسخة عميقة

إدراج

إضافة (عنصر)

عرض (عنصر)

إزالة

سلسلة فيبوناتشي c ++

إزالة()

تصويت()

فحص

جزء()

نظرة خاطفة ()

دعونا نلقي نظرة على المظاهرة الآن ،

برنامج لتوضيح طرق قائمة الانتظار

import java.util. * public class Main {public static void main (String [] args) {// لا يمكننا إنشاء مثيل لقائمة الانتظار لأنها واجهة ، وبالتالي نحن Queue q1 = new LinkedList () // إضافة عناصر إلى قائمة الانتظار q1.add ('I') q1.add ('Love') q1.add ('Rock') q1.add ('And') q1.add ('Roll') System.out.println ('العناصر في قائمة الانتظار: '+ q1) / * * يمكننا إزالة عنصر من قائمة الانتظار باستخدام طريقة الإزالة () ، * هذا يزيل العنصر الأول من قائمة الانتظار * / System.out.println (' عنصر تمت إزالته: '+ q1.remove ( )) / * * element () method - هذا يعيد رأس * Queue. * / System.out.println ('Head:' + q1.element ()) / * * طريقة الاستطلاع () - يؤدي هذا إلى إزالة * رأس قائمة الانتظار وإرجاعها. تُرجع فارغة إذا كانت قائمة الانتظار فارغة * / System.out.println ('poll (): طريقة' + q1.poll ()) / * * peek () - تعمل بنفس طريقة element () ، * ومع ذلك ، فإنها ترجع خالية إذا كانت قائمة الانتظار فارغة * / System.out.println ('peek ():' + q1.peek ()) // عرض عناصر Queue System.out.println ('العناصر في قائمة الانتظار:' + q1)} }

انتاج:

عناصر في قائمة الانتظار: [I، Love، Rock، And، Roll]

العنصر الذي تمت إزالته:

الرأس: الحب

استطلاع (): الحب

نظرة خاطفة (): روك

عناصر في قائمة الانتظار: [روك ، أند ، رول]. في المثال أعلاه ، تم استخدام Generic Queue.

في هذا النوع من قائمة الانتظار ، يمكننا تحديد نوع الكائن المدرج في قائمة الانتظار. في مثالنا ، يمكننا فقط إدراج مثيلات السلسلة في قائمة الانتظار.

التكرار من خلال قائمة انتظار جافا

يمكن تكرار العناصر الموجودة في قائمة انتظار جافا باستخدام الكود التالي:

قائمة الانتظار q1 = جديد LinkedList ()

q1.add ('روك')

q1.add ('And')

أسئلة المقابلة السحابية لخدمة فريق المبيعات

q1.add ('لفة')

// الوصول عبر Iterator

مكرر التكرار = q1.iterator ()

بينما (iterator.hasNext () {

عنصر السلسلة = (سلسلة) iterator.next ()

}

// الوصول عبر حلقة جديدة

لـ (كائن الكائن: q1) {

عنصر السلسلة = كائن (سلسلة)

}

يعتمد التسلسل الذي يتم فيه تكرار العناصر على تنفيذ قائمة الانتظار.

في حين أن هناك عدة طرق يمكن لـ Java Queue تنفيذها ، فقد تمت مناقشة أهم الطرق هنا.

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

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