有一个学生班,有姓名,姓氏,年龄段和吸气剂.
给定一个Student对象流.
如何调用一个collect方法,使其返回Key为Student年龄的Map,值为TreeSet,其中包含具有此类年龄的学生的姓氏.
我想使用Collectors.toMap(),但卡住了.
我以为我可以这样做并将第三个参数传递给toMap方法:
stream().collect(Collectors.toMap(Student::getAge,Student::getSurname,new TreeSet<String>()))`.
解决方法
students.stream() .collect(Collectors.groupingBy( Student::getAge,Collectors.mapping( Student::getSurname,Collectors.toCollection(TreeSet::new)) ))