【问题标题】:java stream groupingBy embedded objectsjava流分组按嵌入对象
【发布时间】:2020-02-14 12:07:16
【问题描述】:

我有几个对象:

public class RequestHostel {
    private Hostel name;
}

public class Hostel {
    private String value;
}

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多