تحدد واجهة المجموعة العمليات الشائعة للقوائم والمتجهات والمكدسات وقوائم الانتظار وقوائم الانتظار ذات الأولوية والمجموعات.
يدعم Java Collections Framework نوعين من الحاويات:
الخرائط هي هياكل بيانات فعالة للبحث السريع عن عنصر باستخدام مفتاح. وهنا المجموعات التالية.
تم تجميع كافة الواجهات والفئات المحددة في Java Collections Framework في الحزمة
java.util.
يعد تصميم Java Collections Framework مثالًا ممتازًا لاستخدام الواجهات والفئات المجردة والفئات الملموسة. تحدد الواجهات الإطار. توفر الفئات المجردة التنفيذ الجزئي. تقوم الفئات الملموسة بتنفيذ الواجهات مع هياكل البيانات الملموسة. إن توفير فئة مجردة تنفذ الواجهة جزئيًا يجعل من السهل على المستخدم كتابة التعليمات البرمجية. يمكن للمستخدم ببساطة تحديد فئة ملموسة تعمل على توسيع الفئة المجردة بدلاً من تنفيذ جميع الأساليب الموجودة في الواجهة. يتم توفير الفئات المجردة مثلAbstractCollection للراحة. ولهذا السبب، يطلق عليها فئات مجردة ملائمة.
واجهةالمجموعة هي الواجهة الجذرية لمعالجة مجموعة من الكائنات. يتم سرد أساليبها العامة في الشكل أدناه. توفر فئة AbstractCollection تطبيقًا جزئيًا لواجهة Collection. ينفذ جميع الطرق في المجموعة باستثناء طرق add، وsize، وiterator. يتم تنفيذها في فئات فرعية محددة مناسبة.
توفر واجهةالمجموعة العمليات الأساسية لإضافة وإزالة العناصر في المجموعة. يضيف الأسلوب add عنصرًا إلى المجموعة. يضيف الأسلوب addAll جميع العناصر الموجودة في المجموعة المحددة إلى هذه المجموعة. تقوم الطريقة remove بإزالة عنصر من المجموعة. يقوم الأسلوب removeAll بإزالة العناصر من هذه المجموعة الموجودة في المجموعة المحددة. يحتفظ الأسلوب retainAll بالعناصر الموجودة في هذه المجموعة والموجودة أيضًا في المجموعة المحددة. تُرجع جميع هذه الأساليب منطقية. القيمة المرجعة هي صحيح إذا تم تغيير المجموعة نتيجة لتنفيذ الطريقة. تقوم الطريقة clear() ببساطة بإزالة كافة العناصر من المجموعة.
الطرقaddAll، removeAll، وretainAll تشبه عمليات الاتحاد والفرق والتقاطع.
توفر واجهةالمجموعة عمليات استعلام متنوعة. تقوم الطريقة size بإرجاع عدد العناصر في المجموعة. تتحقق الطريقة التي تحتوي على مما إذا كانت المجموعة تحتوي على العنصر المحدد. يتحقق الأسلوب containsAll مما إذا كانت المجموعة تحتوي على كافة العناصر الموجودة في المجموعة المحددة. الطريقة isEmpty ترجع صحيح إذا كانت المجموعة فارغة.
توفر واجهةCollection طريقة toArray()، والتي تقوم بإرجاع تمثيل مصفوفة للمجموعة.
لا يمكن تنفيذ بعض الأساليب الموجودة في واجهةالمجموعة في الفئة الفرعية المحددة. في هذه الحالة، ستطرح الطريقة java.lang.UnsupportedOperationException، وهي فئة فرعية من RuntimeException. هذا تصميم جيد يمكنك استخدامه في مشروعك. إذا لم يكن للطريقة أي معنى في الفئة الفرعية، فيمكنك تنفيذها على النحو التالي:
الفراغ العام someMethod () {
طرح UnsupportedOperationException
الجديد
("الطريقة غير مدعومة");
المجموعة.
package demo; import java.util.*; public class TestCollection { public static void main(String[] args) { ArrayListقائمة المدن في المجموعة 1:collection1 = new ArrayList(); collection1.add("New York"); collection1.add("Atlanta"); collection1.add("Dallas"); collection1.add("Madison"); System.out.println("A list of cities in collection1:"); System.out.println(collection1); System.out.println("\nIs Dallas in collection1? " collection1.contains("Dallas")); collection1.remove("Dallas"); System.out.println("\n" collection1.size() " cities are in collection1 now"); Collection collection2 = new ArrayList(); collection2.add("Seattle"); collection2.add("Portland"); collection2.add("Los Angeles"); collection2.add("Atlanta"); System.out.println("\nA list of cities in collection2:"); System.out.println(collection2); ArrayList c1 = (ArrayList )(collection1.clone()); c1.addAll(collection2); System.out.println("\nCities in collection1 or collection2: "); System.out.println(c1); c1 = (ArrayList )(collection1.clone()); c1.retainAll(collection2); System.out.print("\nCities in collection1 and collection2: "); System.out.println(c1); c1 = (ArrayList )(collection1.clone()); c1.removeAll(collection2); System.out.print("\nCities in collection1, but not in 2: "); System.out.println(c1); } }
[نيويورك، أتلانتا، دالاس، ماديسون]
هل دالاس في المجموعة 1؟ حقيقي
هناك 3 مدن في المجموعة 1 الآن
قائمة المدن في المجموعة 2:
[سياتل، بورتلاند، لوس أنجلوس، أتلانتا]
المدن في المجموعة 1 أو المجموعة 2:
[نيويورك، أتلانتا، ماديسون، سياتل، بورتلاند، لوس أنجلوس، أتلانتا]
المدن في المجموعة 1 والمجموعة 2: [أتلانتا]
المدن في المجموعة 1، ولكن ليس في 2: [نيويورك، ماديسون]
ArrayList (السطر 7)، ويستدعي واجهة المجموعة التي تحتوي على طريقة (السطر 16)، طريقة إزالة (السطر 18)، طريقة الحجم (السطر 19)، طريقة addAll (السطر 31)، طريقة الاحتفاظ بالكل (السطر 36)، و طريقة إزالة الكل (السطر 41). في هذا المثال، نستخدم
ArrayList. يمكنك استخدام أي فئة محددة من Collection مثل HashSet، LinkedList، Vector، وStack للاستبدال ArrayList لاختبار هذه الأساليب المحددة في واجهة Collection. يقوم البرنامج بإنشاء نسخة من قائمة المصفوفات (الأسطر 30، 35، 40). والغرض من ذلك هو الحفاظ على قائمة المصفوفة الأصلية سليمة واستخدام نسختها لإجراء عمليات
addAllوretainAll وremoveAll العمليات. تقوم جميع الفئات المحددة في Java Collections Framework بتنفيذ واجهات
java.lang.Cloneableوjava.io.Serializable باستثناء واجهات java.util.PriorityQueue لا يطبق الواجهة القابلة للاستنساخ. وبالتالي، يمكن استنساخ جميع مثيلات Cloneable باستثناء قوائم الانتظار ذات الأولوية ويمكن إجراء تسلسل لجميع مثيلات Cloneable.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3