[英]Is this the right way to use Java Streams?
我一直在摆弄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
有一个返回int
的getAge()
方法和一个返回String
的getFirstName()
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.