import java.util.Compartor;
import java.util.HashMap;
import java.util.map;
import java.util.TreeMap;
فئة عامة ثلاثية {
فراغ ثابت عام رئيسي (سلسلة [] args) {
HashMapmap = جديد HashMap ();
comp المقارنة = مقارنة جديدة (خريطة) ؛
TreeMapmap_apres = TreeMap (شركات);
map.put("A",49);
map.put ("B" ، 18) ؛
map.put("C",92);
map.put ("D" ، 37) ؛
map.put("E",62);
System.out.println("قبل الفرز: "+map);
map_apres.putAll (خريطة) ؛
System.out.println("بعد الفرز: "+map_apres);
}
}
class يقوم المقارن بتنفيذ المقارنة{
Maptuple;
مقارنة عامة (HashMapmap) {
this.tuple = map ؛
}
//يرتب هذا المقارن العناصر بترتيب تنازلي
@Override
int العام مقارنة (الكائن o1، الكائن o2) {
// TODO كعب طريقة تم إنشاؤه تلقائيا
إذا كان (int) tuple.get(o1) >= (int) tuple.get(o2)) {
return -1;
} آخر {
return 1;
}
}
}
< / string >< / string >< / string >< / string >< / string >< / string >< / string >< / pre>2) فرز HashMap باستخدام Collections.sort
في هذا المثال، سنقوم بفرز العناصر من النوع مزدوج. يتم نسخ العناصر إلى LinkedList الذي يقوم بتنفيذ واجهة القائمة ، ثم يتم فرزها باستخدام Collections.sort التي استخدمناها في المقالات السابقة لفرز مجموعات الكائنات الأخرى. بعد الفرز ، نقوم بنسخ العناصر التي تم فرزها من LinkedList إلى جدول تجزئة جديد سيتم إرجاعه كإخراج.public static void main(String[] args) {للفرز في اتجاه تنازلي ، ما عليك سوى تغيير ترتيب المقارنة في المقارنة: الدالة
HashMapmap = جديد HashMap ();
map.put("A",18.5);
map.put("E",76.8);
map.put("C",24.1);
map.put("F",86.2);
map.put("D",5.7);
map.put("B",84.6);
System.out.println("قبل الفرز: "+map);
System.out.println ("بعد الفرز: "+ sortWithValue (خريطة)) ؛
}
HashMap ثابت عام< سلسلة ، مزدوجة> sortWithValue (HashMap< سلسلة ، مزدوجة> خريطة ){
قائمة< خريطة.دخول< سلسلة ، مزدوجة> > قائمة =
LinkedList جديدة< خريطة.دخول< سلسلة ، مزدوجة> > ( map.entrySet () );
Collections.sort (قائمة ، مقارنة جديدة< خريطة.دخول< سلسلة ، مزدوجة> > (){
public int compare( Map.Entry< سلسلة ، مزدوجة> o1 ، خريطة.إدخال< سلسلة ، مزدوجة> o2 ){
return (o1.getValue()).compareTo( o2.getValue());
}
})؛
HashMap< سلسلة ، مزدوجة> map_apres = خريطة لينكد هاش ماب جديدة< سلسلة ، مزدوجة> ();
ل(Map.Entry< سلسلة ، مزدوجة> إدخال: قائمة) < br / > map_apres.put ( entry.getKey () ، entry.getValue () ؛
map_apres العودة ؛
}
< / string >< / string >< / pre>run:
< pre class = "prettyprint lang-java" > قبل الفرز: {D = 5.7 ، E = 76.8 ، F = 86.2 ، A = 18.5 ، B = 84.6 ، C = 24.1}
بعد الفرز: {D = 5.7 ، A = 18.5 ، C = 24.1 ، E = 76.8 ، B=84.6, F=86.2}return(o2.getValue()).compareTo( o1.getValue());
< / string >< / pre> المراجع:
وثائق أوراكل - HashMap
TutorialsPoint - فئة HashMap
Documentation Comparator
وثائق LinkedHashMap < / a>
Please disable your ad blocker and refresh the window to use this website.