【发布时间】:2018-02-15 23:42:52
【问题描述】:
我有一个类似这样的 HashMap:
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(3, 2);
map.put(7, 2);
map.put(5, 1);
map.put(10, 4);
我需要先按值排序,然后按键排序,以防多个键共享相同的值。
结果应该是这样的:
(5, 1)
(3, 2)
(7, 2)
(10, 4)
有什么建议吗?
我首先比较值,然后仅在值重复的情况下比较键。所以我同时使用键和值,而不仅仅是值。
【问题讨论】:
-
你必须使用 LinkedHashMap - 因为 HashMap 无法维护订单。
-
@AriSingh 并不完全是重复的,因为我相信这个问题存在细微差别。
-
@Aominè 它有什么不同 - 仅仅因为值是重复的?重复值不会改变答案/解决方案。只是比较器必须再做一次检查。
标签: java dictionary hashmap