gpt4 book ai didi

java - 这是使用 Java Streams 的正确方法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:05:59 27 4
gpt4 key购买 nike

我一直在摆弄 Java Streams。我有一个 Employee 对象,我根据年龄对对象进行分组,我需要员工的姓名。这是正确的方法吗,还是我使用了太多循环?

employeeList.stream().collect(Collectors.groupingBy(person -> person.age))
.forEach((age, person) -> {
System.out.print("In the age " + age + " the following people are present ");
person.forEach(name -> System.out.print(name.getFirstName() + ", "));
System.out.println("");
});

最佳答案

我会将数据收集与数据呈现分开。

Map<Integer,String> namesByAge = 
employeeList.stream()
.collect(Collectors.groupingBy(Employee::getAge,
Collectors.mapping(Employee::getFirstName,
Collectors.joining(","))));

现在你可以打印每个年龄段的名字了:

namesByAge.forEach((age, names) ->
System.out.println("In the age " + age + " the following people are present " + names));

希望我的方法名称是正确的。根据您的代码,我假设 Employee 有一个返回 intgetAge() 方法和一个 getFirstName() 返回 String 的方法。

关于java - 这是使用 Java Streams 的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48280580/

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