我有一个List<Employee>
。现在我想将它们汇总为每个年龄段的员工人数。
就像在那个员工名单中,有 3 名 21 岁的员工。还有 2 名 25 岁的员工。
所以我想展示Map<Integer,Long>
一下
{
21:3,
25:2
}
我知道我可以使用 来做到这一点Collectors.groupingBy
。但出于好奇,我想知道如何使用Collectors.toMap
方法。我尝试了下面的代码。
代码
@GetMapping("api/test/groupingby/age")
public Map<Integer,Long> testtest2(){
Optional<List<Employee>> optEmployees = service.getAllEmployees();
List<Employee> lsEmployees = optEmployees.map(ls->ls).orElseThrow();
lsEmployees.stream().map(emp->emp.getAge()).
collect(Collectors.
toMap(age->age, Collectors.counting(),(e1,e2)->e1,LinkedHashMap::new));
return null;
}
它给了我以下编译时错误..