Vin*_*nie 3 java java-8 java-stream
我一直在摆弄Java Streams.我有一个EmployeeObject,我根据年龄对对象进行分组,我需要员工的名字.这是正确的方法,还是我使用了太多的循环?
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("");
});
Run Code Online (Sandbox Code Playgroud)
我将数据集合与数据表示分开.
Map<Integer,String> namesByAge =
employeeList.stream()
.collect(Collectors.groupingBy(Employee::getAge,
Collectors.mapping(Employee::getFirstName,
Collectors.joining(","))));
Run Code Online (Sandbox Code Playgroud)
现在您可以打印每个年龄组的名称:
namesByAge.forEach((age, names) ->
System.out.println("In the age " + age + " the following people are present " + names));
Run Code Online (Sandbox Code Playgroud)
希望我的方法名称正确.根据你的代码,我假设Employee有一个getAge()返回an int的getFirstName()方法,以及一个返回a 的方法String.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |