You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对HashMap按值降序排序,值相同时按键升序排序

你可以直接在现有的比较器后链式追加二级排序规则,指定值相等时按键的自然升序排列即可,修改sorted方法的传参即可:

修改后的完整代码如下:

Map<Integer, Integer> sortedRelevance = new LinkedHashMap<>();
relevance.entrySet()
        .stream()
        .sorted(Map.Entry.<Integer, Integer>comparingByValue(Comparator.reverseOrder())
                .thenComparing(Map.Entry.comparingByKey()))
        .forEachOrdered(x -> sortedRelevance.put(x.getKey(), x.getValue()));

上述代码会先按值降序排序,值相同的条目会自动触发二级排序规则,按key的升序排列,运行后最终得到的排序结果为{4=4, 5=4, 1=3, 2=3, 3=3, 6=3},符合需求。

内容的提问来源于stack exchange,提问作者Razvie-arr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:18:00