TreeMap in umgekehrter Reihenfolge von Value ausgeben?
Wie kann ich eine TreeMap in umgekehrter Reihenfolge (Reihenfolge von Value) ausgeben?
Danke im Vorraus!
2 Antworten
![](https://images.gutefrage.net/media/user/Franky12345678/1538404851165_nmmslarge__17_20_160_160_db2fc2b022bc8db92b487c2361323af8.png?v=1538404851000)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Technik, Technologie
Map<Whatever, Whatever> reversed = new TreeMap<>(Collections.reverseOrder());
reversed.putAll(mapToReverse);
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Nach einer kurzen Google-Runde habe ich das auf Stackoverflow gefunden und ein bisschen für dich modifiziert. Das sortiert eine Map nach der Value - aber rückwärts
public static <K,V extends Comparable<? super V>> Map<K, V> entriesSortedByValues(Map<K,V> map) {
SortedSet<Map.Entry<K,V>> sortedEntries = new TreeSet<>((e1, e2) -> e2.getValue().compareTo(e1.getValue()));
sortedEntries.addAll(map.entrySet());
Map<K,V> sortedMap = new LinkedHashMap<>();
for (Map.Entry<K,V> entry : sortedEntries)
sortedMap.put(entry.getKey(), entry.getValue());
return sortedMap;
}
![](https://images.gutefrage.net/media/default/user/11_nmmslarge.png?v=1551279448000)
verreisterNutzer
13.03.2022, 21:04
@Marcus496
Hi... wusste ich nicht! Hab es zu einer Map geändert in der Antwort :)
Hey, danke für die schnelle Antwort. Ich hab noch nie mit SortedSet's gearbeitet. Wie kriegt man von denen jetzt die jeweiligen Values und so? Danke