小编use*_*796的帖子

如何使用Java 8流从地图列表中查找每个用户的最低分数

假设我有以下地图列表,

List<Map<String, Integer>> scores = new ArrayList<>();

scores.add(Collections.singletonMap("user1", 3));
scores.add(Collections.singletonMap("user3", 15));
scores.add(Collections.singletonMap("user1", 1));
scores.add(Collections.singletonMap("user2", 5));
scores.add(Collections.singletonMap("user2", 23));
scores.add(Collections.singletonMap("user1", 10));
Run Code Online (Sandbox Code Playgroud)

我想使用带有lambda表达式的Java 8流将每个用户的最低分数提取到地图中.期望的结果是

{user1=1, user2=5, user3=15}
Run Code Online (Sandbox Code Playgroud)

我试过这个并没有用,

Map<String, Integer> result = scores.stream()
    .flatMap(m -> m.entrySet().stream())
    .collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.minBy(Comparator.comparingInt(Map.Entry::getValue))));
Run Code Online (Sandbox Code Playgroud)

谁能告诉我怎么做?

提前致谢.

lambda java-8 java-stream

5
推荐指数
2
解决办法
232
查看次数

标签 统计

java-8 ×1

java-stream ×1

lambda ×1