繁体   English   中英

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

[英]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有一个返回intgetAge()方法和一个返回StringgetFirstName()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM