В моей Java программы, я получаю результат, какСортировка элементов карты в Java Map <String, List <String>> в ReverseOrder
Выход:
гонки по уходу за акр
акт кошки
Ожидаемое:
акт гонки кошка
уход за акр
Теперь я хочу, чтобы отсортировать элементы Карта в обратном порядке. Поэтому я могу получить результат, как и выше. Я добавил код ниже.
public static void main(String args[]) {
try {
Scanner sc = readWords();
Map<String, List<String>> wordAnagramPairs = new HashMap<>();
wordAnagramPairs = mapAnagrams(sc);
Comparator<List<String>> c = (l1, l2) -> {
Collections.sort(l1);
Collections.sort(l2);
int in = l1.get(0).length() - l2.get(0).length();
if (in == 0) {
return String.join(" ", l1).compareTo(String.join(" ", l2));
} else {
return in;
}
};
List<List<String>> sortedList = wordAnagramPairs.values()
.stream()
.filter(li -> li != null && li.size() > 1)
.sorted(c)
.collect(Collectors.toList());
for(List<String> anagrams : sortedList){
for(String anagram : anagrams){
System.out.print(anagram + " ");
}
System.out.print('\n');
}
} catch (FileNotFoundException e) {
System.out.println("File Not Found");
}
}
Используйте 'TreeMap' вместо' HashMap' – iNan