في درس اليوم، سنتحدث عن مجموعات Sets. هناك العديد من الطرق التي تستخدمها Java لمعالجة القوائم وكل واحدة تفعل شيئًا معينًا. إذن هذه قائمة بالطرق وأوصافها، ثم بعض الطرق والأوصاف. في الأساس، يمكنك إنشاء قائمة وإدراج عناصر إزالة العناصر وفرزها والعثور عليها بناءً على فهرسها، ابحث عنها بناءً على قيمها، ابحث عن الحجم، اكتشف عدد العناصر الموجودة في القائمة، والبحث عن العناصر الموجودة في القائمة التي تحتوي على قيم معينة. مرة أخرى، هذه الطرق التي نعرضها هنا تستخدم كمرجع. دعنا نلقي نظرة على الفرق بين مجموعة وقائمة وخريطة. أولاً، المجموعة هي تشكيلة غير مرتبة. شيء واحد في المجموعة هو أنها كلها كائنات فريدة، مما يعني أنه لا يمكنك الحصول على نسخ مكررة. القائمة تقوم بترتيب المجموعة Collection ويتم وضعها في ترتيب الإدراج. لقد صادفنا الآن قوائم من قبل عندما تحدثنا عن ArrayListsوLinkedLists وهناك أيضًا فئة Vector. توفر الخريطة قيمة أساسية، نوعًا ما مثل الفهرس حيث يمكننا الاستعلام عن هذا الفهرس والعثور على القيم. HashSet هي مجموعة أغراض عامة. ومثل المجموعة العادية، يمكننا الحصول على LinkedHashSetوTreeSet. سنرى هذه في البرامج القادمة. بالنسبة للقوائم، توجد ArrayListsوLinkedLists وكما قلنا، قائمة المتجهات Vector lists وهناك تعريفات لهؤلاء. كيف نعرف أي منها نستخدم؟ حسنًا، يجب عليك استخدام القائمة إذا كنت بحاجة إلى الوصول إلى العناصر بشكل متكرر باستخدام الفهرس. يوفر ArrayList وصولاً أسرع مع فهرس أو إذا كنت تريد تخزين العناصر وتحتاجها بالترتيب الذي تم إدخالها به. يجب عليك استخدام مجموعة إذا كنت تريد إنشاء تشكيلة من العناصر الفريدة وأنت لا تريد أي تكرارات. TreeSet هي مجموعة متنوعة. يحافظ LinkedHashSet أيضًا على ترتيب الإدراج. ويجب عليك استخدام الخريطة إذا قمت بتخزين البيانات في شكل مفتاح وقيمة، ويمكنك اختيار HashTable أو HashMap. هنا برنامج يوضح مجموعة. في هذا البرنامج، قررت إنشاء مجموعتين مختلفتين. واحدة لأعداد المتقاعدين من لاعبي نيويورك يانكي. والثاني أسماء اللاعبين الذين تقاعدت أعدادهم. كما ترى في أعلى الجانب الأيسر من الشاشة، أحضر مكتبة java.util وأنشئ مجموعة من جميع أرقام المتقاعدين، وأنا أضعها بالترتيب العددي. ستلاحظ وجود دائرتين، واحد للعدد ثمانية وواحد للرقم 42. الآن قد لا تكون من محبي لعبة البيسبول، لكن الرقم ثمانية تقاعد مرتين من قبل يانكيز، مرة لبيل ديكي ومرة ليوغي بيرا. والرقم 42 متقاعد مرة واحدة عن طريق دوري البيسبول الرئيسي لجاكي روبنسون ومرة لفريق يانكيز لصالح ماريانو ريفيرا. الآن ذكرنا أن المجموعة لا تسمح بالتكرارات. لذلك دعنا نشاهد ما يحدث. ننشيء في السطرين 21 و 22، وننشئ مجموعتين. سطر الأعداد الصحيحة لأعداد المتقاعدين وسلسلة من اللاعبين. في السطر 24، أستخدم كتلة try-catch للتأكد من أنني لا أدخل أي نسخ مكررة. وإذا التقطت هذا الخطأ وأرمى استثناء لا يقوم بإيقاف البرنامج. أقوم بإنشاء حلقة تقول لنبدأ من الصفر وننتقل إلى الرقم 22. لذلك هناك 23 رقمًا متقاعدًا لليانكيز. وأضيف كل من أرقام المتقاعدين إلى المجموعة. ثم أقوم بإضافة كل لاعب لمجموعة اثنين. تطبع السطور من 30 إلى 32 القائمة التي لم يتم فرزها. وكما ترى، الأرقام بترتيب عشوائي إلى حد ما. تبدأ بـ 32 ثم 1، 2، 3، 4، 5. ثم تذهب إلى 37، 6، 7، 8، 9، 10. واحد فقط 42، واحد فقط ثمانية يظهر في قائمة الأرقام التي لم يتم فرزها. هذه الأرقام، لأنها مكررة، لم يتم إدراجها في القائمة. لذا فإن السطر 31 يطبع قائمة الأرقام التي لم يتم فرزها. يطبع السطر 32 قائمة الأسماء التي لم يتم فرزها. في السطر 34، أقوم بفرز الأرقام وقمت بإنشاء مجموعة TreeSet تسمى الأرقام المصنفة. ثم أطبع جميع أرقام نيويورك يانكيز المتقاعدين في الترتيب الصحيح. يحدث ذلك في السطر 36. يمكنني أيضًا الاتصال بالرقمين الأول والأخير في القائمة. ويخبرني أن الرقم الأول في القائمة هو رقم واحد وآخر رقم في القائمة هو رقم 51. أخيرًا، في البرنامج، لدي بيان catch يتطابق مع بيان Try لاكتشاف أي أخطاء، خاصة تلك التي أحاول إدراج رقم مكرر فيها. لذا الآن أنت تعرف أن المجموعة Set هي تشكيلة Collection لا تحتوي على عناصر مكررة. في درسنا التالي، سنتحدث عن كيفية قيام قائمة بعمل مماثل.