首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java -使用自定义逻辑打印键值对的最大值

Java -使用自定义逻辑打印键值对的最大值
EN

Stack Overflow用户
提问于 2020-02-22 02:40:04
回答 1查看 53关注 0票数 1

假设我有一个包含如下数据的hashmap:

代码语言:javascript
复制
Hello - 2
Help - 2
World - 1

我希望能够根据值打印前2个对象,如果2个对象的值相同,则基于键(在本例中为升序)。这是否只能通过自定义的comparator对象来实现,或者是否有更好的方法来实现?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-22 03:07:02

具有两个比较键的要求使解决方案变得不那么简单,但是您仍然可以通过组合helper方法返回的比较器来指定排序顺序,从而省去了编写自己的实现的麻烦。

下面显示了一个具有内联比较器结构的流操作,它执行所需的选择。

代码语言:javascript
复制
List<Map.Entry<String, Integer>> result = map.entrySet().stream()
    .sorted(Map.Entry.<String, Integer>comparingByValue()
            .reversed()
            .thenComparing(Map.Entry::getKey))
    .limit(2)
    .collect(toList());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60344540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档