(ط) جمع ومجموعات
كلاهما يقع تحت حزمة Java.Util ، والفرق هو:
Collection هي واجهة تجميع ، مع وجود مساحات فرعية مشتركة مثل LeachSet ، وهي العقدة الأولى من الرسم البياني لإطار المجموعة. يوفر سلسلة من الطرق لأداء العمليات الأساسية على كائنات التجميع.
الطرق الشائعة هي:
إضافة منطقية (هـ) إضافة عناصر إلى الحاوية ؛ int size () يعيد عدد عناصر المجموعة ؛ تحدد منطقية isempty () ما إذا كانت الحاوية فارغة ؛ يحتوي Boolean على (كائن O) إذا كانت هذه المجموعة تحتوي على العنصر المحدد ، فإنها تُرجع صحيحًا ، وسيتم استخدام طريقة متساوية () هنا ؛ إزالة منطقية (كائن O) يزيل مثيل العنصر المحدد ؛ إلخ.
المجموعات هي فئة غلاف تحتوي على العديد من الأساليب المتعددة الأشكال الثابتة لعمليات التجميع ، والتي تحتوي على خوارزميات متعددة الأشكال التي يتم تشغيلها على المجموعة ، أي "Wrapper" ، والتي تُرجع مجموعة جديدة تدعمها المجموعة المحددة ، وبعض الأشياء الأخرى.
الطرق الشائعة هي:
فرز باطل (قائمة) فرز محتويات القائمة.
تجدر الإشارة هنا إلى أن (PS: التفسير التالي حول SORT () مقتطف من مناقشة موجزة حول صفيف كائن أو قائمة فرز ومجموعات المبادئ . يتتبع أصل القائمة وفرز التجميع ، ويكتبه بوضوح شديد)
جسم الفرز في هذا النوع () وظيفة المصفوفات. sort ().
suppressWarnings ("غير محدد") ثابت عام <t يمتد قابلة للمقارنة <؟ super t >> فرز void (قائمة <T> قائمة) {object [] array = list.toarray () ؛ المصفوفات. int i = 0 ؛ listIratorator <T> it = list.listIrator () ؛ بينما (it.hasnext ()) {it.next () ؛ it.set ((t) Array [i ++]) ؛ }} في المصفوفات. فرز الفراغ الثابت العام (كائن [] صفيف) {// ابدأ Android interbableTimsort.sort (Array) ؛ // end android changed} فرز الفراغ الثابت (كائن [] أ) لفرز الفراغ الثابت (كائن [] A ، int lo ، int hi) إلى binarysort باطلة ثابتة (كائن [] a ، int lo ، int hi ، int start). في BinarySort ، الجزء المستخدم لمقارنة الحجم هو: قابلة للمقارنة <Object> pivot = (قابلة للمقارنة) a [start] ؛ int left = lo ؛ int right = start ؛ تأكيد اليسار <= يمين ؛ بينما (يسار <يمين) {int mid = (يسار + يمين) >>> 1 ؛ if (pivot.compareto (a [mid]) <0) right = mid ؛ غادر آخر = منتصف + 1 ؛ }يتم استخدام الطريقة الوحيدة للواجهة المماثلة في البحث الثنائي: المقارنة (). إذا تم تحميل جميع الفئات المخصصة في الحاوية وتحتاج إلى مقارنة ، فيجب عليك تنفيذ الواجهة المماثلة أو ترث فئة المقارنة وتجاوز طريقة المقارنة ().
Int BinarySearch (كائن قائمة) لحاويات قائمة متسلسلة ، يتم استخدام طريقة التراجع نصف للعثور على الكائن المحدد ؛ باطل عكسي (قائمة) يرتب الكائنات في حاوية القائمة بترتيب عكسي ؛ إلخ.
(2) التكرار والمعتاد
أولاً ، يقع ITERBLE تحت حزمة Java.lang ، ويقع ITERATOR تحت حزمة Java.Util. في إطار التجميع ، يتم تعريف ثلاث طرق في واجهة Iterator: Boolean hasnext () ؛ e next () ؛ void remove (). تحدد Iterball طريقة واحدة فقط: ITerator () ، قيمة الإرجاع هي كائن ينفذ واجهة التكرار. ترث المجموعة الواجهة الفائقة لـ ITERBLE ، وبالتالي فإن جميع فئات التنفيذ في إطار المجموعة لها طريقة ITERATAR () ، ويسمح تعدد الأشكال بالإشارة إلى التكرار بالوصول إلى الجزء (أي تلك الطرق الثلاثة) في المجموعة الحالية التي تنفذ التكرار. إذا كنت بحاجة إلى حذف العناصر في هذا الوقت ، نظرًا لأن Iterator يكمل القفل على عملية المجموعة هذه ، فيمكنك فقط استخدام طريقة Remove () الخاصة بـ ITERATAR أثناء اجتياز الحلقة مع التكرار ، ولا يمكنك استخدام طريقة إزالة (الكائن) الخاصة بالمجموعة.
فلماذا يجب علينا تنفيذ الواجهة الرائعة؟ لماذا لا تنفذ مباشرة واجهة التكرار؟ بهذه الطريقة ، يمكن لفئة التجميع أن ترث هذه الطرق الثلاث مباشرة؟
ألقِ نظرة على فصول التجميع في JDK ، مثل عائلة القائمة أو العائلة المحددة ، التي تنفذ الواجهة الرائعة ، ولكن لا تنفذ واجهة ITERATAR مباشرة.
فكر في الأمر بعناية وشئ.
لأن الطرق الأساسية لواجهة ITerator Next () أو hasnext () تعتمد على موضع التكرار الحالي للمؤلف.
إذا قامت المجموعة بتطبيق واجهة ITerator مباشرة ، فستؤدي حتماً إلى كائن التجميع الذي يحتوي على البيانات (المؤشر) لموضع التكرار الحالي.
عندما يتم تمرير المجموعة بين طرق مختلفة ، نظرًا لأن موضع التكرار الحالي ليس مسبقًا ، فإن نتيجة الطريقة التالية () تصبح غير متوقعة.
ما لم تتم إضافة طريقة إعادة تعيين () إلى واجهة التكرار لإعادة تعيين موضع التكرار الحالي.
ولكن في هذه الحالة ، يمكن أن يكون للمجموعة موقع تكرار حالي واحد فقط في نفس الوقت.
لا يوجد ما هو عليه ، وكل مكالمة تُرجع مُعدًا يعتبر من نقطة الصفر.
لا تتداخل المتكررون المتعددون مع بعضها البعض.
تستند المقالة أعلاه إلى بعض نقاط المعرفة المربكة (التفسير التفصيلي) في مجموعة Java. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.