1. نظرة عامة على مجموعة Java Collection
يتضمن Java SE إطار عمل Java (JCF) يتكون من مجموعة من الفصول والواجهات. تتمثل وظيفتها الرئيسية في تنظيم البيانات المخزنة في بنية معينة والوصول إلى هذه البيانات بطريقة محددة. هدفها هو توفير إطار عام لمعالجة مجموعات الكائنات وتقليل كمية ترميز المبرمجين التي يستخدمها المبرمجين عند معالجة مجموعات كائنات مختلفة.
تتضمن بعض الاختلافات في فئات التجميع ، بالإضافة إلى ما إذا كانت تدعم عمليات العناصر المكررة ، ما إذا كانت العناصر في حالة جيدة وما إذا كان يُسمح بإضافة عناصر فارغة. وفقًا لهذه الاختلافات الثلاثة في إطار مجموعة Java ، يتم تقسيم طرق تخزين الكائنات إلى ثلاثة أنواع ، وهي:
من أجل دعم عمليات الوصول إلى الفرز والمرور للكائنات ، يتم توفير عدة واجهات في إطار مجموعة Java:
2. الواجهة الواجهة وواجهة التكرار
يتم تعريف بعض الأساليب الأساسية المشتركة بواسطة كائنات التجميع في واجهة التجميع.
| طريقة | يصف |
| حجم int () | إرجاع عدد العناصر الواردة في المجموعة الحالية |
| isempyt () | تحديد ما إذا كانت المجموعة تحتوي على عناصر |
| Boolean يحتوي على (كائن O) | تحديد ما إذا كان هناك عنصر محدد في المجموعة |
| إضافة (كائن س) | أضف عنصرًا إلى المجموعة |
| إزالة (كائن س) | حذف عنصر من المجموعة |
| ITERATOR ITERATAR () | إرجاع Traverser للوصول إلى العناصر المختلفة في المجموعة |
واجهة التكرار هي واجهة تستخدم لاجتياز مجموعة.
| طريقة | يصف |
| hasnext () | إذا كان هناك المزيد من العناصر في المجموعة ، فإن الطريقة تُرجع صحيحًا |
| التالي() | إرجاع العنصر التالي في المجموعة |
| يزيل() | حذف العنصر الأخير الذي تم إرجاعه بواسطة Iterator |
1. قائمة واجهة
واجهة القائمة موروثة من واجهة التجميع ، ولها الخصائص التالية:
فئات التنفيذ الأكثر استخدامًا لواجهة القائمة هي فئة ArrayList وفئة LinkedList.
1) .Raylist
مثال على البرنامج:
حزمة LEI ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ اختبار الفئة العامة {public static void main (string [] args) {list list = new ArrayList <> () ؛ list.add (1) ؛ list.add ("Zhangsan") ؛ list.add (false) ؛ list.add ('a') ؛ list.add (0 ، "Lisi") ؛ list.add (1) ؛ list.remove (1) ؛ list.remove (2) ؛ list.set (0 ، "wangwu") ؛ لـ (int i = 0 ؛ i <list.size () ؛ i ++) {system.out.println (list.get (i)) ؛ }}}ستُرجع الطريقة المتساوية () المحددة بواسطة فئة الكائن بشكل صحيح فقط عندما يتم تمرير الكائن إلى الطريقة والكائن الذي يدعو إلى الطريقة هو نفس الكائن. يمكن اعتبار كائنين مع نفس الحالة نفس الكائن عن طريق الكتابة فوق طريقة متساوية ().
2) .LinkedList
| طريقة | يصف |
| باطلة addfirst | أضف كائنًا في بداية القائمة المرتبطة |
| باطلة addlast | إضافة كائن في نهاية القائمة المرتبطة |
| getFirst () | إرجاع العنصر الأول في القائمة المرتبطة |
| getlast () | إرجاع العنصر الأخير في القائمة المرتبطة |
| removeFirst () | احذف العنصر الأول في القائمة المرتبطة |
| الإزالة () | حذف العنصر الأخير في القائمة المرتبطة |
مثال على البرنامج:
حزمة LEI ؛ استيراد java.util.linkedList ؛ استيراد java.util.list ؛ الفئة العامة test2 {public static void main (string [] args) {LinkedList l = new LinkedList <> () ؛ L.Add ("Zhangsan") ؛ L.Add ("Lisi") ؛ L.Addfirst (1) ؛ L.Addlast (4) ؛ System.out.println (L.GetFirst ()) ؛ System.out.println (L.GetLast ()) ؛ L.RemoveFirst () ؛ L.Removelast () ؛ لـ (int i = 0 ؛ i <l.size () ؛ i ++) {system.out.println (l.get (i)) ؛ }}}اختيار LinkedList مقابل ArrayList
إذا كانت هناك حاجة إلى الوصول بسرعة إلى القائمة ولكن لا يتم إدراجها وحذفها بشكل متكرر ، فسيكون من الأفضل تحديد قائمة ArrayList ؛ إذا كانت القائمة تحتاج إلى إدراج وحذفها بشكل متكرر ، فيجب عليك تحديد LinkedList.
2.Set واجهة
ترث واجهة SET من واجهة التجميع وتراث جميع طرق واجهة التجميع أيضًا. تحتوي واجهة SET على الخصائص التالية:
الأكثر استخدامًا لتنفيذ واجهة SET هي فئة Hashset وفئة Treeset.
1) .hashset
فئة hashset هي تطبيق واجهة محددة تعتمد على خوارزمية التجزئة. لها الخصائص التالية:
إذا كتبت الفئة التي كتبناها طريقة متساوية ، فيجب على هذه الفئة أيضًا إعادة تعريف طريقة HashCode () ، والتأكد من أنه عند مقارنة نتيجة الكائنين مع طريقة متساوية ، تكون قيم إرجاع طريقة HashCode () للكائنات متساوية.
مثال على البرنامج:
حزمة LEI ؛ استيراد java.util.hashset ؛ استيراد java.util.set ؛ الفئة العامة test4 {public static void main (string [] args) {set <string> set = new hashset <string> () ؛ set.add ("Zhangsan") ؛ set.add ("lisi") ؛ لـ (String s: set) {system.out.println (s) ؛ }}}2). Treeset
لا تنفذ فئة Treeset واجهة مجموعة الفئة فحسب ، بل تقوم أيضًا بتنفيذ واجهة SortedSet ، وذلك لضمان فرز الكائنات في المجموعة بترتيب معين. عند إضافة كائن إلى مجموعة Treeset ، يتم إدراجه في تسلسل مرتبة من الكائنات ، ولكن لا يتم فرز هذا النوع بالترتيب الذي تتم فيه إضافة الكائنات ، ولكن يتم فرزه وفقًا لخوارزمية معينة.
تقوم Treeset بفرز العناصر بالترتيب الطبيعي للعناصر ، أو تقوم بفرزها وفقًا للمقارنة المقدمة عند إنشاء المجموعة. تدعم Treeset طريقتين للفرز: الفرز الطبيعي والفرز المخصص.
3. خريطة واجهة
واجهة الخريطة (الخريطة) هي واجهة مهمة أخرى في إطار مجموعة Java تختلف عن واجهة التجميع. إنه يتوافق مع مجموعة من العلاقات المقابلة من مفاتيح القيم. هناك مجموعتان من الكائنات في حاوية كائن الخريطة ، ويتم استخدام مجموعة واحدة من الكائنات لحفظ المفتاح في الخريطة ، ويتم استخدام المجموعة الأخرى لحفظ القيمة. يمكن للمفتاح والقيمة ترقية البيانات من أي نوع مرجعي. لا يمكن تكرار المفتاح ، ولكن يمكن تكرار القيمة.
1) .hashmap
HashMap هو تطبيق واجهة الخريطة استنادًا إلى خوارزمية التجزئة. تقوم HashMap بحفظ مفاتيحها في جدول التجزئة للصيانة ، والمفاتيح فريدة من نوعها. ومع ذلك ، لا يضمن HashMap ترتيب المفاتيح بترتيب محدد ، خاصة أن الأمر لم يتغير بشكل دائم.
تنفذ فئة HashMap واجهة الخريطة ، وبالتالي وجود جميع طرق واجهة الخريطة.
حزمة يوم 1228 ؛ استيراد java.util.*؛ الفئة العامة HashMapDemo {public static void main (string [] args) {// إنشاء خريطة hashmap جديدة <string ، string> map = new hashmap <string ، string> () ؛ map.put ("A1" ، "Xiao") ؛ map.put ("B2" ، "Xiaol") ؛ map.put ("A4" ، "Xiaosd") ؛ map.put ("b1" ، "12a") ؛ map.put ("A3" ، "1") ؛ // استخدم ITerator لتجاوز المفتاح والقيمة system.out.println ("قبل أن تكون قيمة الخريطة هي:") ؛ SET <STRING> KEYS = MAP.KEYSET () ؛ لـ (iterator <string> i = keys.iterator () ؛ قيمة السلسلة = map.get (مفتاح) ؛ System.out.println (Key + "=" + value) ؛ } // حذف القيمة باستخدام المفتاح "a4" system.out.println ("/ndelete العنصر بقيمة المفتاح A4") ؛ map.remove ("A4") ؛ // // استخدم ITerator لتجارة المفاتيح والقيم system.out.println ("/n قيمة الخريطة بعد:") ؛ المفاتيح = map.keyset () ؛ لـ (iterator <string> i = keys.iterator () ؛ قيمة السلسلة = map.get (مفتاح) ؛ System.out.println (Key + "=" + value) ؛ }}}2). treemap
فئة Treemap هي تطبيق واجهة MAP يعتمد على خوارزمية الأشجار الحمراء والأسود. تشبه طريقة تخزين المفاتيح في Treemap Treeset. إنه يخزن المفاتيح في شجرة ، ويتم ترتيب ترتيب المفاتيح بالترتيب الطبيعي أو الترتيب المخصص.
مثال على البرنامج:
حزمة يوم 1228 ؛ استيراد java.util.*؛ الفئة العامة treemapdemo {public static void main (string [] args) {// إنشاء خريطة treemap جديدة <integer ، string> map = new treemap <integer ، string> () ؛ map.put (1 ، "واحد") ؛ map.put (2 ، "اثنين") ؛ map.put (3 ، "ثلاثة") ؛ map.put (4 ، "أربعة") ؛ map.put (5 ، "Five") ؛ // استخدم ITerator لعرض المفاتيح والقيم system.out.println ("قيمة الخريطة السابقة هي:") ؛ تعيين <integer> Keys = map.keyset () ؛ لـ (مفتاح الكائن: مفاتيح) {string value = map.get (key) ؛ System.out.println (Key+"="+value) ؛ } // حذف قيمة المفتاح 3 system.out.println ("/ndelete العنصر بقيمة المفتاح 3") ؛ map.remove (3) ؛ // استخدم ITerator لعرض المفتاح والقيمة system.out.println ("/nthe value بعد الخريطة هي:") ؛ لـ (مفتاح الكائن: مفاتيح) {string value = map.get (key) ؛ System.out.println (Key+"="+value) ؛ }}}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة في دراسة أو عمل الجميع. آمل أيضًا دعم wulin.com أكثر!