gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:22:10 25 4
gpt4 key购买 nike

假设我有以下 map 列表,

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));

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

{user1=1, user2=5, user3=15}

我试过了,但没用,

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

谁能告诉我该怎么做吗?

提前致谢。

最佳答案

Map<String, Integer> result = 
scores.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey,
Map.Entry::getValue,
Math::min));

关于lambda - 如何使用 Java 8 流从 map 列表中查找每个用户的最低分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32110651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com