【问题标题】:Java 8 stream and grouping of listJava 8 流和列表分组
【发布时间】:2016-06-14 14:57:26
【问题描述】:

我有一个订单列表,我想使用 Java 8 streamCollectors.groupingBy 按用户对它们进行分组:

orderList.stream().collect(Collectors.groupingBy(order -> order.getUser())

这会返回一个包含用户和订单列表的地图:

Map<User, List<Order>>

我不需要整个对象用户只是它的一个字段用户名,它是一个字符串,所以我想得到这样的东西:

Map<String, List<Order>>

我尝试使用 Stream.map 将用户映射到用户名字段,但无法正确处理。我怎样才能尽可能简单地做到这一点?

【问题讨论】:

    标签: java java-8 java-stream collectors


    【解决方案1】:

    您可以将groupingBy 收集器与username 一起使用,而不是整个User 对象:

    orderList.stream().collect(Collectors.groupingBy(order -> order.getUser().getUsername())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多