我一直在研究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("");
});
list.stream().collect(Collectors.groupingBy(Employee::getAge,Collectors.mapping(Employee::getFirstName,Collectors.toList()))) .entrySet().stream().forEach(e -> { System.out.println("在年龄 " + e.getKey() + " 的人有 " + e.getValue()); });
- Hadi J.entrySet().stream().forEach(…)
而不是仅使用.forEach(…)
需要您处理Map.Entry
方法getKey()
和getValue()
,而不是仅通过名称引用键和值。因此,这更加复杂。 - Holger