Die Sammlung TreeMap ist standardmäßig nach seinen Schlüsseln sortiert, aber wenn Sie sortieren müssen TreeMap nach Werten, dann bietet Java eine Möglichkeit, dies mit dem comparator.
Beispiel:
package codeurjava;
import java.util.*;
class TreeMapSort {
// Sortieren von TreeMap-Elementen nach Werten
public static> Map sortByValues(final Map map) {
ComparatorvalueComparator = new Comparator () {
public int compare(K k1, K k2) {
int compare = map.get(k1).compareTo(map.get(k2));
if (compare == 0)
return 1;
else
return compare;
}
};
MapTreeMap_triee_par_valeur = new TreeMap (valueComparator);
TreeMap_triee_par_valeur.putAll(Karte);
return TreeMap_triee_par_valeur;
}
public static void main(String args[]) {
TreeMaptreemap = new TreeMap ();
// elemente
treemap.put("1", "e4");
treemap.put("2", "e5");
treemap.put("3", "e1");
treemap.put("4", "e3");
treemap.put("5", "e2");
System.out.println("Vor dem Sortieren:");
/* Durchsuchen der unsortierten TreeMap mit Iterator */
Set set = treemap.entrySet();
Iterator i = set.iterator();
// Zeige Elemente
while(i.hasNext()) {
Map.Entry entry entry = (Map.Entry)i.next();
System.out.print(entry.getKey() + " : ");
System.out.println(entry.getValue());
}
System.out.println("Nach dem Sortieren:");
// sortByvalues()
Map-Methode aufrufen TreeMap_triee_par_valeur = sortByValues(treemap);
/* Durchsuchen Sie die neue Map sortiert mit Iterator */
set = TreeMap_triee_par_valeur.entrySet();
i = set.iterator();
// Zeige Elemente
while(i.hasNext()) {
Map.Entry entry entry = (Map.Entry)i.next();
System.out.print(entry.getKey() + " : ");
System.out.println(entry.getValue());
}
}
}
Execution
Vor dem Sortieren:
1 : e4
2 : e5
3 : e1
4 : e3
5 : e2
Nach dem Sortieren:
3 : e1
5 : e2
4 : e3
1 : e4
2 : e5
Referenzen:
Java-Dokumentation - Komparator (JavaSE 8)
Please disable your ad blocker and refresh the window to use this website.