1. التحضير النظري
الخريطة هي واجهة تجميع لأزواج القيمة الرئيسية. تشمل فصول التنفيذ الخاصة بها بشكل أساسي: HashMap و Treemap و Hashtable و LinkedHashMap.
Treemap: تطبيق NavigableMap يعتمد على شجرة أسود أحمر ، يتم فرزه بالترتيب الطبيعي لمفاتيحه أو بناءً على المقارنة المقدمة عند إنشاء التعيين ، اعتمادًا على المنشئ المستخدم.
قيم hashmap بالترتيب. يتم تنفيذها وفقًا لرمز المفتاح. كيف ننفذ الفرز لهذا hashmap غير المرتبة؟ الرجوع إلى نوع القيمة من treemap.
الخريطة. إرجاع عرض المجموعات.
2. الفرز الرئيسي
Treemap في ترتيب تصاعدي بشكل افتراضي. إذا كنا بحاجة إلى تغيير طريقة الفرز ، فنحن بحاجة إلى استخدام المقارنة: المقارنة. يمكن للمقارنة فرز الكائنات أو المصفوفات ، وتنفيذ طريقة المقارنة العامة (T O1 ، TO2) لهذه الواجهة لتحقيق الفرز ، على النحو التالي:
استيراد java.util.comparator ؛ استيراد java.util.iterator ؛ استيراد java.util.map ؛ import java.util.set ؛ استيراد java.util.treemap ؛ فئة عامة treemaptipt {string> {str string> {string static (string) OBJ2) {// sort في ترتيب تنازلي OBJ2.comPareto (OBJ1) ؛ map.put ("B" ، "CCCCCC") ؛ map.put ("D" ، "AAAAA") ؛ map.put ("c" ، "bbbbb") ؛ map.put ("a" ، "ddddd") ؛ SET <STRING> KEYSET = MAP.KEYSET () ؛ iterator <string> iter = keyset.iterator () ؛ بينما (iter.hasnext ()) {string key = iter.next () ؛ System.out.println (Key + ":" + map.get (key)) ؛ }}}نتائج التشغيل كما يلي:
D: AAAAAC: BBBBBB: CCCCCA: DDDDDD
3. فرز القيمة
المثال أعلاه هو الفرز وفقًا للقيمة الرئيسية لـ Treemap ، ولكن في بعض الأحيان نحتاج إلى الفرز وفقًا لقيمة Treemap. لفرز القيمة ، نحتاج إلى استخدام طريقة Sort (قائمة <T> ، المقارنة <؟ Super T> C) للمجموعات ، والتي تقوم بفرز القائمة المحددة وفقًا للترتيب الذي تم إنشاؤه بواسطة المقارنة المحددة. ولكن هناك شرط أساسي ، أي أن جميع العناصر يجب أن تكون قادرة على مقارنتها بناءً على المقارنة المقدمة ، على النحو التالي:
استيراد java.util.arraylist ؛ استيراد java.util.collections ؛ استيراد java.util.comparator ؛ استيراد java.util.list ؛ استيراد java.Util.map ؛ استيراد java.util.tel.entry treemap <string ، string> () ؛ map.put ("a" ، "dddddd") ؛ map.put ("c" ، "bbbbbb") ؛ map.put ("D" ، "AAAAA") ؛ map.put ("B" ، "CCCCCC") ؛ // هنا تحويل map.entryset () إلى قائمة القائمة <map.entry <string ، string >> list = new ArrayList <map.entry <string ، string >> (map.entryset ()) ؛ // ثم استخدم مقارنة لتنفيذ مجموعة الفرز. لـ (map.entry <string ، string> mapping: list) {system.out.println (mapping.getKey ()+":"+mapping.getValue ()) ؛ }}}نتائج التشغيل كما يلي:
D: AAAAAC: BBBBBB: CCCCCA: DDDDDD
إن فرز خريطة Java أعلاه حسب المفتاح وطريقة تنفيذ القيمة هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.