我有一个“学校”的集合;该类提供方法“getDescription”(String)。
我需要创建一个Map <String, Long>
,其中包含每个描述使用流的具有该描述的学校的数量。
我做了以下事情:
Stream<School> school = getSchools().stream(); // getSchools returns the colletion
Map<String, Long> m = school.collect(toMap(School::getDescription,
groupingBy(School::getDescription, counting())));
但它不起作用......任何提示?
答案 0 :(得分:2)
你走在正确的轨道上。试试这个:
Map<String, Long> m =
school.collect(groupingBy(School::getDescription, counting()));
您的原始代码:
school.collect(toMap(School::getDescription, //
groupingBy(School::getDescription, counting())));
会导致编译错误,因为toMap()
将第二个参数作为值映射器函数