使用 lambdas 和流按值对地图进行排序 [英] Sort map by value using lambdas and streams

查看:19
本文介绍了使用 lambdas 和流按值对地图进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 Java 8 的新手,不确定如何使用流及其排序方法.如果我有如下地图,如何使用 Java 8 按值对该地图进行排序以仅获取前 10 个条目.

I'm new to Java 8, not sure how to use streams and it's methods to sort. If I have map as below, how to sort this map by value to take only top 10 entries using Java 8.

HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("a", 10);
        map.put("b", 30);
        map.put("c", 50);
        map.put("d", 40);
        map.put("e", 100);
        map.put("f", 60);
        map.put("g", 110);
        map.put("h", 50);
        map.put("i", 90);
        map.put("k", 70);
        map.put("L", 80);

我知道在 Java 8 之前,我们可以按这个链接排序:https://stackoverflow.com/a/109389/4315608

I know before Java 8, we can sort as this link: https://stackoverflow.com/a/109389/4315608

推荐答案

您可以随时开始阅读 文档一些 教程.

You can always start reading the documentation and some tutorials.

map.entrySet().stream()
        .sorted(Map.Entry.<String, Integer>comparingByValue().reversed()) 
        .limit(10) 
        .forEach(System.out::println); // or any other terminal method

参考

http://www.leveluplunch.com/java/examples/sort-order-map-by-values/

这篇关于使用 lambdas 和流按值对地图进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆