التحليل: إذا كنت لا تعرف عدد الكائنات التي تحتاجها عند تشغيل البرنامج ، أو إذا كنت بحاجة إلى تخزين الكائنات بطريقة أكثر تعقيدًا ، فيمكنك استخدام إطار مجموعة Java.
إذا تم تمكين طريقة الحذف للمجموعة ، يتم الحفاظ على فهارس جميع العناصر في المجموعة تلقائيًا.
تعوض المجموعة تمامًا عن أوجه القصور في المصفوفة.
02. محتويات أطر العمل
يحتوي إطار التجميع على ثلاثة محتويات رئيسية: واجهات خارجية وتطبيقات الواجهة والخوارزميات لعمليات التجميع.
01. الواجهة: نوع البيانات التجريدية التي تمثل المجموعة
02. التنفيذ: تنفيذ محدد للواجهات في إطار التجميع
03. الخوارزمية: أكمل بعض طريقة حساب مفيدة على كائن ينفذ واجهة لإطار مجموعة معين.
مخطط إطار عمل مجموعة جافا:
01. تحتوي واجهة التجميع على مجموعة من الكائنات غير المتكررة (المتكررة) والكائنات غير المرتبة.
02. واجهة set ترث واجهة التجميع وتخزن مجموعة من الفريدة (غير مسموح بالتكرار) والكائنات غير المرتبة.
03. ترث واجهة القائمة واجهة التجميع وتخزن مجموعة من الكائنات غير الفريدة (تكرار التكرار المسموح بها) ، وترتيب (عناصر مكان بترتيب إدخال العناصر ، ولن يتم إعادة ترتيبها)
04. تخزن واجهة الخريطة زوجًا من كائنات القيمة الرئيسية ، مما يوفر رسم خرائط للمفتاح للقيمة. المفاتيح في الخريطة لا تتطلب الأمر ولا يُسمح بالتكرار. لا تتطلب القيمة أيضًا أمرًا ، ولكن يُسمح بالتكرار.
05. واجهة Iterator هي الواجهة المسؤولة عن تحديد عناصر الوصول والعبور.
لنبدأ بالمقدمة:
1. قائمة واجهة
ترث واجهة القائمة واجهة التجميع وتخزن مجموعة من الكائنات غير الفريدة (القابلة للتكرار) ويتم طلبها (عناصر المكان بترتيب إدخال العناصر ، ولن يتم إعادة ترتيبها)
تشمل الفصول الشائعة التي تنفذ واجهات قائمة ArrayList و LinkedList
يقوم ArrayList بتغليف المصفوفات وتنفس صفائف من الأطوال المتغيرة
تستخدم LinkedList طريقة تخزين قائمة المرتبطة ، وصالحها هي أنها فعالة نسبيًا عند إدخال وحذف العناصر.
01.RayList Collection Class
Package cn.day001 ؛ public class penguin {private string name = "Anonymous" ؛ سلسلة جنسية خاصة = "س" ؛ البطريق العام () {} Penguin (اسم السلسلة ، سلسلة الجنس) {this.name = name ؛ this.Sex = الجنس ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } سلسلة عامة getSex () {return sex ؛ } public void setSex (سلسلة الجنس) {this.sex = sex ؛ }}فئة الاختبار:
Package cn.day001 ؛ import java.util.arraylist ؛ استيراد java.util.iterator ؛ استيراد java.util.list ؛ // on-machine 1 ArrayList Collection class test {public static void main (string [] args) {// 1. إنشاء كائنات البطريق المتعددة البطريق Penguin = البطريق الجديد ("Nannan" ، "QZI") ؛ Penguin Penguin2 = New Penguin ("Huahua" ، "Qmei") ؛ Penguin Penguin3 = New Penguin ("Zhezhe" ، "Qmei") ؛ // 2. قم بإنشاء كائن مجموعة ArrayList ووضع كائنات البطريق في قائمة <Penguin> Penguins = New ArrayList <Penguin> () ؛ Penguins.Add (Penguin) ؛ Penguins.Add (Penguin2) ؛ Penguins.Add (Penguin3) ؛ // 3. عدد البطاريق في set set system.out.println ("total" + penguins.size () + "penguin") ؛ // 4. عرض لـ (int i = 0 ؛ i <penguins.size () ؛ i ++) {penguin pg = (penguin) penguins.get (i) ؛ System.out.println (pg.getName ()+"/t"+pg.getSex ()) ؛ } // 5. حذف Zhe Penguin Penguins.Remove (Penguin3) ؛ // 6. تحديد ما إذا كان لا يزال هناك Zhe Penguin في المجموعة if (penguins.contains (penguin3)) {system.out.println ("الوجود Zhe penguin") ؛ } آخر {system.out.println ("الوجود Zhe penguin") ؛ } system.out.println () ؛ // 7. استخدم ITerator للتكرار عبر system.out.println ("باستخدام ITerator") ؛ iterator <Penguin> Its = penguins.iterator () ؛ بينما (its.hasnext ()) {penguin pg = its.next () ؛ System.out.println ("name"+pg.getName ()+"/t Gender"+pg.getsex ()) ؛ } system.out.println () ؛ // 8. استخدم foreach to traverse system.out.println ("استخدام foreach to traverse") ؛ لـ (penguin pg: penguins) {system.out.println ("name"+pg.getName ()+"/t الجنس"+pg.getsex ()) ؛ }}}02.LinkedList Collection Class
Package cn.day001 ؛ import java.util.linkedList ؛ // اختبار طرق خاصة متعددة من LinkedList الفئة العامة test2 {public static void main (string [] args) {// 1. إنشاء كائنات البطريق المتعددة البطريق Penguin = البطريق الجديد ("Nannan" ، "QZI") ؛ Penguin Penguin2 = New Penguin ("Huahua" ، "Qmei") ؛ Penguin Penguin3 = New Penguin ("Zhezhe" ، "Qmei") ؛ // 2. قم بإنشاء كائن مجموعة ArrayList ووضع كائنين من البطريق في IT // list <Penguin> Penguins = New ArrayList <Penguin> () ؛ LinkedList <Penguin> Penguins = New LinkedList <Penguin> () ؛ Penguins.Add (Penguin) ؛ Penguins.Add (Penguin2) ؛ Penguins.Add (Penguin3) ؛ // 3. إخراج عدد البطاريق في set system.out.println ("total" + penguins.size () + "penguin") ؛ // 4. عرض لقب البطريق الأول في مجموعة Penguin firstpenguins = penguins.getFirst () ؛ System.out.println ("لقب البطريق الأول هو:"+firstpenguins.getName ()) ؛ // 5. تحقق من لقب آخر البطريق في مجموعة Penguin LastPenguins = penguins.getlast () ؛ System.out.println ("لقب آخر البطريق هو:"+lastpenguins.getName ()) ؛ // 6. حذف البطريق الأول وآخر البطريق البطريق. Penguins.Removelast () ؛ System.out.println ("عدد البطاريق بعد الحذف"+penguins.size ()) ؛ }} 2. خريطة واجهة
01.HashMap Collection Class
package cn.day002 ؛ import java.util.hashmap ؛ import java.util.iterator ؛ import java.util.map ؛ import java.util.scanner ؛ import java.util.set ؛ string> pet = new hashmap <string ، string> () ؛ pet.put ("Hehe" ، "Dog") ؛ pet.put ("haha" ، "penguin") ؛ pet.put ("haha" ، "cat") ؛ إدخال الماسح الضوئي = الماسح الضوئي الجديد (System.in) ؛ System.out.println ("الرجاء إدخال لقب الحيوانات الأليفة:") ؛ اسم السلسلة = input.next () ؛ if (pet.containskey (name)) {String petname = pet.get (name) ؛ System.out.println (name+"PET المقابلة"+petname) ؛ } آخر {system.out.println ("آسف ، لا يوجد حيوان أليف يتوافق مع هذا اللقب") ؛ } system.out.println () ؛ // التكرار عبر system.out.println ("استخدم ITERATAR TRAVERSAL") ؛ SET <STRING> KEYS = PET.KEYSET () ؛ // FETTER جميع قيم المفاتيح ITERATOR <TRING> it = keys.iterator () ؛ // احصل على كائن iteratoer بينما (it.hasnext ()) {string key = (string) it.next () ؛ القيمة: "+KEY+"/tvalue القيمة: "+حيوانات أليفة) ؛ }}}المقال أعلاه تحليل متعمق لإطار التجميع في Java هو كل المحتوى الذي أشاركه معك. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.