Cześć
Z góry ostrzegam, że jestem początkujący i będę bardzo wdzięczny za wyrozumiałość :) Mam problem w zadaniu. W kodzie potrzebuję posortować mapę<String, Integer> pierw względem wartości (od największej liczby do najmniejszej), a jeśli liczby są równe to, aby ułożenie String'ów, które mają równe wartości, było alfabetycznie. I tu pojawia się klops, bo szukałem na internecie i znalazłem w jednym miejscu, ale wpis miał miejsce 11 lat temu, jest jedno rozwiązanie i wygląda bardzo na przekombinowane.
Póki co jedynie posortowałem względem wartości:
private static Map<String, Integer> returnSortedMap(Map<String, Integer> map) {
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
list.sort(Map.Entry.comparingByValue());
Collections.reverse(list);
Map<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
Jak to zmodyfikować, aby sortowało tak jak napisałem? Żeby to było ładnie i schludnie i nie przesadzać z ilością linii.
Będę bardzo wdzięczny za pomoc, szczególnie, że to bardzo ważne zadanie! :)