Java 8 流和列表分组
Java 8 stream and grouping of list
我有一个订单列表,我想使用 Java 8 stream 和 Collectors.groupingBy[= 按用户对它们进行分组27=]:
orderList.stream().collect(Collectors.groupingBy(order -> order.getUser())
此 return 包含用户和订单列表的地图:
Map<User, List<Order>>
我不需要整个对象 User 只需要它的一个字段 username 这是一个 String,所以我想得到像这样:
Map<String, List<Order>>
我尝试使用 Stream.map 将用户映射到用户名字段,但无法正确映射。我怎样才能尽可能简单地做到这一点?
您可以仅将 groupingBy
收集器与 username
一起使用,而不是整个 User
对象:
orderList.stream().collect(Collectors.groupingBy(order -> order.getUser().getUsername())
我有一个订单列表,我想使用 Java 8 stream 和 Collectors.groupingBy[= 按用户对它们进行分组27=]:
orderList.stream().collect(Collectors.groupingBy(order -> order.getUser())
此 return 包含用户和订单列表的地图:
Map<User, List<Order>>
我不需要整个对象 User 只需要它的一个字段 username 这是一个 String,所以我想得到像这样:
Map<String, List<Order>>
我尝试使用 Stream.map 将用户映射到用户名字段,但无法正确映射。我怎样才能尽可能简单地做到这一点?
您可以仅将 groupingBy
收集器与 username
一起使用,而不是整个 User
对象:
orderList.stream().collect(Collectors.groupingBy(order -> order.getUser().getUsername())