كيفية فرز HashMap حسب المفاتيح في Java
رأينا كيف فرز HashMap حسب القيم< / a>. في هذا البرنامج التعليمي ، سترى كيفية ترتيب العناصر حسب المفاتيح باستخدام فئة TreeMap. نحن نعلم أن HashMap لا يحتفظ بترتيب إدراج العناصر افتراضيا. في جافا ، يمكن فرز الخريطة أو HashMap حسب المفاتيح أو القيم.1- فرز HashMap باستخدام TreeMap
يقوم هذا الرمز بفرز HashMap حسب المفاتيح ويستند إلى استخدام TreeMap.import java.util.HashMap;
import java.util.Iterator;
import java.util.map;
import java.util.Set;
import java.util.TreeMap;
الفئة العامة Triclés {
الفراغ العام الثابت الرئيسي (سلسلة [] args) {
Map< سلسلة ، سلسلة> hmap = HashMap جديد< سلسلة ، سلسلة> ();
hmap.put("4"، "أربعة")؛
hmap.put("2"، "اثنان")؛
hmap.put("3"، "ثلاثة")؛
hmap.put("1"، "واحد")؛
مجموعة مجموعة = hmap.entrySet ();
مكرر المكرر = set.iterator ();
System.out.println ("قبل الفرز:") ؛
while(iterator.hasNext()) {
Map.Entry me = (Map.Entry)iterator.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
خريطة مرتبة = خريطة الشجرة الجديدة (hmap) ؛
Set set2 = sortedMap.entrySet ();
مكرر المكرر 2 = set2.iterator ();
System.out.println("بعد الفرز:");
while(iterator2.hasNext()) {
Map.Entry me2 = (Map.Entry)iterator2.next();
System.out.print(me2.getKey() + ": ");
System.out.println(me2.getValue());
}
}
}
< / pre> الإخراج:
< pre class = "prettyprint lang-java" > قبل الفرز:
3: ثلاثة
2: اثنان < br / >1: واحد < br / >4: أربعة < br / > بعد الفرز:
1: واحد < BR / >2: اثنان < BR / >3: ثلاثة < BR / >4: أربعة < BR / >< / قبل >< H2 >2- فرز HashMap باستخدام المقارنة أو المقارنة < / h2>يمكنك أيضا فرز الخريطة عن طريق نسخ المفاتيح إلى قائمة تنفذ الواجهة java.util.List ، ثم قم بفرز العناصر عن طريق استدعاء Collections.sort(). هنا يمكنك استخدام كل من واجهات الفرز: < span style = "font-family:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >المقارنة< / span >< / a> أو < span style = "عائلة الخط: " ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قابلة للمقارنة< / سبان> واختر الترتيب التصاعدي أو التنازلي الذي تريد عرضه. بمجرد إنشاء قائمة المفاتيح ، يمكنك نسخ المفاتيح والقيم إلى HashMap.import java.util.Collections ؛
import java.util.Compartor ؛
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.map;
من الفئة العامة Triclés {
HashMap العامة الثابتة< سلسلة ، سلسلة> sortHashMap (خريطة< سلسلة ، سلسلة> hmap){
List< خريطة.دخول< سلسلة ، سلسلة> > قائمة =
LinkedList جديدة< خريطة.دخول< سلسلة ، سلسلة> > ( hmap.entrySet () );
Collections.sort (قائمة ، مقارنة جديدة< خريطة.دخول< سلسلة ، سلسلة> > (){
public int compare
(Map.Entry< سلسلة ، سلسلة> o1 ، خريطة.إدخال< سلسلة ، سلسلة> o2 )
{
//compare مفتاحين
return (o1.getKey()).compareTo( o2.getKey() );
}
})؛
//إنشاء HashMap جديد من LinkedList
HashMap< سلسلة ، سلسلة> hmapTriee = LinkedHashMap جديد< سلسلة ، سلسلة> ();
for (Map.Entry< سلسلة ، سلسلة> إدخال: قائمة) < br / > {
hmapTriee.put( entry.getKey () ، entry.getValue () ؛
}
إرجاع hmapTriee ؛
}
الفراغ العام الثابت الرئيسي (سلسلة [] args) {
HashMap النهائي< سلسلة ، سلسلة> hmap = HashMap جديد< سلسلة ، سلسلة> ();
hmap.put("4"، "أربعة")؛
hmap.put("2"، "اثنان")؛
hmap.put("3"، "ثلاثة")؛
hmap.put("1"، "واحد")؛
System.out.println("قبل الفرز: "+ hmap);
System.out.println("بعد الفرز: "+sortHashMap(hmap));
}
}
< / pre> الإخراج:
< pre class = "prettyprint lang-java" > قبل الفرز: {3 = ثلاثة ، 2 = اثنان ، 1 = واحد ، 4 = أربعة} < br />بعد الفرز: {1 = واحد ، 2 = اثنان ، 3 = ثلاثة ، 4 = أربعة}
< / قبل>