Sortierung absteigende Sortierung: Java Map
Was ich tun möchte, ist sozusagen eine Karte von Wert. Ich ging über viele Fragen, die verfügbar sind auf stackoverflow Stelle und fand sich folgende Lösung, die tut, was ich will, jedoch fehlt eine kleine Sache.
Link1: Sortierung Anzeigen
Aber das Problem habe ich ist, dies ist standardmäßig sortiert nach aufsteigender Reihenfolge von Wert. Ich möchte, um es in absteigender Reihenfolge:
Also, was ich Tat, war ich eine Klasse angelegt, die einen Komparator
class MyComparator implements Comparator {
Map map;
public MyComparator(Map map) {
this.map = map;
}
public int compare(Object o1, Object o2) {
return ((Integer) map.get(o2)).compareTo((Integer) map.get(o1));
}
}
Und dann gebe ich meine Karte zu der treemap,
MyComparator comp = new MyComparator(myMap);
Map<String, Integer> newMap = new TreeMap(comp);
newMap.putAll(myMap);
Dies scheint schlechter Ansatz, weil ich glaube, das ist ineffizient. Gibt es eine Möglichkeit, ändern Sie die Lösung in dem link zu bestellen auf absteigender Reihenfolge standardmäßig.
InformationsquelleAutor der Frage Null-Hypothesis | 2013-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie verwenden
new TreeMap(Collections.reverseOrder());
.oder umkehren einer vorhandenen Komparator, wie Wert-Komparator
Collections.reverseOrder(comparator)
Es funktioniert wie ein Ansatz, tauschen die beiden Objekte vor dem Aufruf voncompare
/compareTo
InformationsquelleAutor der Antwort Holger
nun kann u Durchlaufen iterator und extrahieren Sie den Wert mit iterator.hasNext() und iterator.die next () - Methoden ......
InformationsquelleAutor der Antwort Nilesh Jadav
Könnte man einfach invertieren der Rückgabewert Ihrer Methode vergleichen, indem ein Minuszeichen am Anfang:
InformationsquelleAutor der Antwort OCarneiro
Dies funktionieren wird :
InformationsquelleAutor der Antwort Farman
Ändern Sie die Lösung in der Verknüpfung zu Sortieren in absteigender Reihenfolge, nur in umgekehrter Zustand:
InformationsquelleAutor der Antwort Nicole