Я хочу отсортировать древовидную карту по значению, для этого я использую набор>, вот мой код:
StringBuilder sb = new StringBuilder();
Map<Character, Integer> map = new TreeMap<>();
for (char c : s.toCharArray()){
map.put(c, map.getOrDefault(c, 0) + 1);
}
TreeSet<Map.Entry<Character, Integer>> set = new TreeSet<Map.Entry<Character, Integer>>(){
public int compare(Map.Entry<Character, Integer> e1, Map.Entry<Character, Integer> e2){
return e2.getValue() - e1.getValue();
}
};
for (Map.Entry<Character, Integer> e : map.entrySet()){
set.add(e);
}
// set.addAll(map.entrySet());
for (Map.Entry<Character, Integer> e : set){
for (int i = 0; i < e.getValue(); i++){
sb.append(e.getKey());
}
}
return sb.toString();
Но я получаю следующую ошибку:
Exception in thread "main" java.lang.ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(TreeMap.java:1251)
at java.util.TreeMap.put(TreeMap.java:495)
at java.util.TreeSet.add(TreeSet.java:212)
at Solution.frequencySort(Solution.java:14)
at __DriverSolution__.__helper__(__Driver__.java:4)
at __Driver__.main(__Driver__.java:48)
Так почему я не могу добавить набор записей в набор деревьев?
Спасибо!