المجموعة: يمكن تخزين الكائنات فقط ، ويمكن أن تكون أنواع الكائنات مختلفة ويمكن أن يكون الطول متغيرًا.
الواجهات والفئات الشائعة الاستخدام:
1. واجهة قائمة (منظم ومتكرر): ArrayList Class ، LinkedList ، فئة المتجه
2. واجهة تعيين (غير مرتبة ، لا يمكن تكرارها): فئة Hashset ، فئة Treeset
3. واجهة الخريطة (أزواج القيمة الرئيسية ، المفتاح فقط ، القيمة غير الفريدة)
حلقة اجتياز فصول التجميع
1. العادي للحلقة: مثل (int i = 0 ؛ i <arr.size () ؛ i ++) {...}
2.
3. ITerator (iterator): على سبيل المثال ، iterator it = arr.iterator () ؛ بينما (it.hasnext ()) {object o = it.next () ؛ ...}
ملاحظة: لا يمكن تعديل المصفوفات أو المجموعات أثناء اجتياز ، بينما يمكن تعديل الحلقات أثناء اجتياز.
الفرق بين ArrayList و LinkedList و Vector
ArrayList: كفاءة عالية ، تستخدم في الغالب للاستعلام
LinkedList: يستخدم في الغالب للإدراج والحذف
المتجه: آمن الخيط ، يستخدم في الغالب للاستعلام
شفرة:
استيراد java.util.arraylist ؛ استيراد java.util.iterator ؛ استيراد java.util.linkedList ؛ استيراد java.util.list ؛ استيراد java.util.vector ؛ قائمة الفئة العامة قائمة {new static void main (string [] args) Vector () ؛ ArrayList.add ("1") ؛ // نوع الحرف ArrayList.add ("1") ؛ // تكرار العنصر arraylist.add ("2") ؛ ArrayList.add (1) ؛ . System.out.println (obj) ؛} لـ (int i = 0 ؛ i <linkedList.size () ؛ i ++) {// العادية لنظام loop.out.println (ArrayList.get (i)) ؛} iterator it = vector.iterator () ؛ // iterator بينما (it.hasnext ()) {object j = it.next () ؛ system.out.println (j) ؛}}}الفرق بين Hashset و Treeset
hashset: يتم تنفيذ hashset بواسطة جدول التجزئة. البيانات في hashset غير مرتبة. يمكنك وضع Null ، ولكن يمكنك فقط وضع واحدة فارغة.
Treeset: يتم تنفيذ Treeset بواسطة شجرة ثنائية المؤتمرات. يتم فرز البيانات في Treeset تلقائيًا ولا يُسمح بوضع القيم الفارغة.
شفرة:
STESTEST {public static void main (string [] args) {set hashset = new hashset () ؛ set treeset = new Treeset () ؛ hashset.add ("1") ؛ // نوع الحرف hashset.add ("1") ؛ // تكرار العنصر hashset.add ("2") ؛ hashset.add (1) ؛ // number type Treeset.add ("1") ؛ Treeset.add ("1") ؛ Treeset.add ("2") ؛ //treeset.add(1) ؛ // خطأ في التقرير ، لا يمكن لـ Treeset إضافة أنواع بيانات مختلفة لـ (الكائن I: Hashset) {// foreach loop system.out.println (i) ؛} iterator it = treeset.iterator () ؛ // iterator بينما (it.hasnext ()) {object j = it.next () ؛ system.out.println (j) ؛}}}ملاحظة: لا تحتوي واجهة SET على طريقة GET ، لذلك لا يمكنك استخدام حلقة طبيعية لتجاوزها.
الفرق بين hashmap و hashtable و treemap
HashMap: HashMap يسمح بمفتاح فارغ واحد وقيم خالية متعددة
علامة التجزئة: لا يُسمح بمفتاح وقيمة علامة التجزئة
Treemap: يمكنه فرز السجلات التي يحفظها وفقًا للمفتاح. بشكل افتراضي ، يتم فرزه بترتيب تصاعدي للقيم الرئيسية. يمكنك أيضًا تحديد المقارنة المرتبة. عندما يتم اجتيازها مع التكرار ، يتم فرز السجلات التي تم الحصول عليها.
شفرة:
استيراد java.util.hashmap ؛ استيراد java.util.hashtable ؛ استيراد java.util.iterator ؛ استيراد java.util.map ؛ استيراد java.util.set ؛ import java.util.treeMap ؛ mappist {public static void main ( hashtable () ؛ map treemap = new treemap () ؛ hashmap.put (1 ، "1") ؛ // نوع الحرف قيمة hashmap.put (2 ، "1") ؛ // نفس القيمة hashmap.put (3 ، "2") ؛ hashmap.put (4 ، 1) ؛ // قيمة النوع الرقمي hashmap.put ("5" ، 1) ؛ // مفتاح نوع الحرف hashtable.put (1 ، "1") ؛ hashtable.put (2 ، "1") ؛ hashtable.put (3 ، "2") ؛ hashtable.put (4 ، 1) ؛ hashtable.put ("5" ، 1) ؛ treemap.put (1 ، "1") ؛ treemap.put (2 ، "1") ؛ treemap.put (5 ، "2") ؛ 1) ؛ treemap.put (1 ، "1") ؛ treemap.put (2 ، "1") ؛ treemap.put (5 ، "2") ؛ treemap.put (4 ، 1) ؛ // treemap.put ("5" ، 1) ؛ // تم الإبلاغ عن خطأ ، لا يمكن لـ Treemap إضافة أنواع مختلفة من مفاتيح المفاتيح // transip hashmap مفتاح (مفتاح الكائن: hashmap.keyset ()) {system.out.println (key) ؛} // transip hashtable value scled key key: heartable. hashmap.keyset () ؛ لـ (iterator iter = set.iterator () ؛ iter.hasnext () ؛) {object key = iter.next () ؛ value object = hashmap.get (key) ؛ system.out.println (key+"/t"+value) ؛} // reversial terverse hashtalue key pairs ، order order! جدول ITerator = hashtable.entryset (). iterator () ؛ بينما (table.hasnext ()) {map.entry entry = (map.entry) table.next () ؛ مفتاح الكائن = intpling.getKey () ؛ // الحصول على قيمة كائن المفتاح = interptValue () ؛ // احصل على القيمة system.out.println (مفتاح+"/t"+قيمة) ؛ } // Terverse Terverse treemap-value-value زوج ITerator tmp = treemap.entryset (). iterator () ؛ بينما (tmp.hasnext ()) {map.entry entry = (map.entry) tmp.next () ؛ مفتاح الكائن = intpling.getKey () ؛ // الحصول على قيمة كائن المفتاح = interptValue () ؛ // احصل على القيمة system.out.println (مفتاح+"/t"+قيمة) ؛ }}}تشمل فئات حول سلامة الخيط: Vecto ، Hashtabl ، StringBuffe
السلامة غير الرأسية: ArrayList ، LinkedList ، Hashmap ، Hashset ، Treemap ، Treeset ، StringBulider
ملاحظة: يمكن استخدام ConcurrentHashMap بدلاً من HashMap لسلامة الخيط وأكثر كفاءة من الهاش.
آلية Java الخاصة لا يمكن أن تضمن سلامة الخيط بالكامل. تحتاج إلى رمز يدويًا والتحكم فيه بنفسك.