在教程here中,我看到我可以按属性对对象进行分组:
Map<Person.Sex, List<Person>> byGender =
roster
.stream()
.collect(
Collectors.groupingBy(Person::getGender));
如果我需要通过带参数的方法进行分组,例如steve.get("height")
而不是steve.getHeight()
,该怎么办?我怀疑这可以用lambda完成,但我找不到正确的语法。我现在得到的是什么:
people.stream().collect(Collectcors.groupingBy(p -> p.get("height")));
使用lambda函数的结果分组的正确语法是什么?
答案 0 :(得分:0)
想出来:
people.stream().collect(Collectors.groupingBy(p -> p.get("height"), Collectors.toSet()));