首页 文章

Java 8流和列表分组

提问于
浏览
3

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

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

这将返回包含用户和订单列表的 Map :

Map<User, List<Order>>

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

Map<String, List<Order>>

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

1 回答

  • 12

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

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

相关问题