gpt4 book ai didi

java-8 - Java 8 Stream,获取按国家/地区的平均年龄

转载 作者:行者123 更新时间:2023-12-03 01:31:59 25 4
gpt4 key购买 nike

我正在尝试在 java 8 上进行函数式编程

用户类别

public class User {
private String name;
private Country country;
private int age;
// setters - getters
}

国家级

public class Country {
private String name;
private int population;
//setters - getters
}

现在我想获取按国家/地区划分的用户的平均年龄,基本上是 Map<String, Double> 。我可以用老方法通过迭代用户列表来做到这一点。但是我想在 functional 中实现它方式,与 stream 。我知道collectgroupingBy .

我试过users.stream().collect(Collectors.groupingBy(user -> user.getCountry()));并得到 Map<String, List<User>> 。不知道如何进行平均部分。

最佳答案

groupingBy 添加第二个参数

Map<String, Double> map = users
.stream()
.collect(Collectors.groupingBy(
user -> user.getCountry().getName(),
Collectors.averagingInt(User::getAge)));

关于java-8 - Java 8 Stream,获取按国家/地区的平均年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45440598/

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