Java - فرز خريطة الشجرة حسب القيم باستخدام المقارنة
المجموعة TreeMap افتراضيا حسب مفاتيحه ، ولكن إذا كنت بحاجة إلى فرز TreeMap< / span> حسب القيم ، ثم توفر Java طريقة للقيام بذلك باستخدام المقارنة.
مثال:
package codeurjava;
import java.util.* ؛
class TreeMapSort {
// فرز عناصر TreeMap حسب القيم
ثابت عام> Map sortByValues(Final Map map) {
CompartorvalueComparator = new Compartor () {
public int compare (K k1, K k2) {
int compare = map.get(k1).compareTo(map.get(k2));
إذا (قارن == 0)
إرجاع 1 ؛ < br / > آخر
مقارنة العودة ؛
}
} ؛
MapTreeMap_triee_par_valeur = TreeMap الجديد (valueComparator);
TreeMap_triee_par_valeur.putAll(خريطة);
TreeMap_triee_par_valeur العودة ؛
}
الفراغ العام الثابت الرئيسي (سلسلة args []) {
TreeMaptreemap = سلسلة TreeMap < string الجديدة = ""> ();
// elements
treemap.put("1"، "e4")؛
treemap.put ("2" ، "e5") ؛
treemap.put ("3" ، "e1") ؛
treemap.put ("4" ، "e3") ؛
treemap.put ("5" ، "e2") ؛
System.out.println("قبل الفرز:");
/* تصفح TreeMap غير المصنفة باستخدام المكرر * / < br / >
Set set = treemap.entrySet ();
المكرر i = set.iterator ();
// إظهار العناصر
بينما(i.hasNext()) {
Map.Entry entry entry entry = (Map.Entry)i.next();
System.out.print(entry.getKey() + ": ");
System.out.println(entry.getValue());
}
System.out.println ("بعد الفرز:") ؛
// استدعاء sortByvalues ()
طريقة الخريطة TreeMap_triee_par_valeur = sortByValues (treemap);
/* تصفح الخريطة الجديدة مرتبة باستخدام المكرر * /
set = TreeMap_triee_par_valeur.entrySet ();
i = set.iterator ();
// إظهار العناصر
بينما(i.hasNext()) {
Map.Entry entry entry entry = (Map.Entry)i.next();
System.out.print(entry.getKey() + ": ");
System.out.println(entry.getValue());
}
}
}
< / string >< / string >< / k>< / k>< / k>< / k>< / k>< / k>< / k>< / pre>Execution< / p>
قبل الفرز: < >1: E4 < BR / >2: E5 < BR / >3: E1 < BR / >4: E3 < BR / >5: E2 < BR / > بعد الفرز: < br / >3: e1 < br / >5: e2 < br / >4: e3
1: e4
2: e5
< / pre>المراجع: < / p >< p > وثائق جافا - مقارنة (JavaSE 8) < / a>< / p>