Что я хочу сделать, так это сортировать карту по значению. Я просмотрел много вопросов, которые доступны на сайте stackoverflow и выяснил следующее решение, которое делает то, что я хочу, но не хватает маленькой вещи.
Link1: Сортировка карты
Но проблема, с которой я сталкиваюсь, заключается в том, что по умолчанию это сортируется по возрастанию по значению. Я хочу заказать его по убыванию:
Итак, что я сделал, я создал класс, который реализует компаратор
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));
}
}
И затем я передаю свою карту в treemap,
MyComparator comp = new MyComparator(myMap);
Map<String, Integer> newMap = new TreeMap(comp);
newMap.putAll(myMap);
Это кажется плохим подходом, потому что я считаю, что это неэффективно. Есть ли способ изменить решение в ссылке, чтобы упорядочить по убыванию по умолчанию.