【发布时间】:2021-08-30 18:53:17
【问题描述】:
我目前正在按值对地图进行排序,但我想不出在我具有相同值的情况下如何按键对其进行排序。
目前它是这样工作的:
public static <K, V extends Comparable<? super V>> Map<K, V> sortMapByValue(Map<K, V> map) {
List<Map.Entry<K, V>> list = new LinkedList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
@Override
public int compare(Map.Entry<K, V> e1, Map.Entry<K, V> e2) {
return e2.getValue().compareTo(e1.getValue());
}
});
Map<K, V> result = new LinkedHashMap<>();
for (Map.Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
我的输出是这样的: (AA,10), (CC,5), (BB,5)
我正在努力实现这一目标: (AA,10), (BB,5), (CC,5)
【问题讨论】:
标签: java sorting hashmap key-value treemap