使用lambdas和stream按值排序映射 [英] Sort map by value using lambdas and streams
本文介绍了使用lambdas和stream按值排序映射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是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
推荐答案
您随时可以开始阅读文档和< a href =http://winterbe.com/posts/2014/03/16/java-8-tutorial/ =noreferrer> some 教程。
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和stream按值排序映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文