使用Java Stream API中的参数通过函数收集

时间:2015-07-24 19:43:59

标签: java lambda java-8 java-stream

在教程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函数的结果分组的正确语法是什么?

1 个答案:

答案 0 :(得分:0)

想出来:

people.stream().collect(Collectors.groupingBy(p -> p.get("height"), Collectors.toSet()));