java流分组通过嵌入对象

时间:2019-10-17 14:20:37

标签: java lambda java-8 functional-programming java-stream

我有几个对象:

public class RequestHostel {
    private Hostel name;
}

public class Hostel {
    private String value;
}

,我想知道是否可以将Hostel的值分组,例如

.stream().collect(Collectors.groupingBy(RequestHostel::getName::getValue, counting()))

2 个答案:

答案 0 :(得分:3)

您不能链接方法引用,但可以使用lambda:

<[a-zA-Z\s]+="[\w:\/\.]+">

或者,如果您不使用这些对象,则可以简单地将它们映射:

.stream().collect(Collectors.groupingBy(rh -> rh.getName().getValue(), counting()))

答案 1 :(得分:2)

您不能像以前那样链接方法引用。但是,可以的,您可以使用 lambda

Map<String, Long> countGroupedByValue = requestHostels.stream()
        .collect(Collectors.groupingBy(requestHostel -> requestHostel.getName().getValue(),
                Collectors.counting()));