2016-06-14 59 views
3

的分组我有订单的列表,我使用Java 8 Collectors.groupingBy希望他们组用户:Java的8个流和列表

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

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

Map<User, List<Order>> 

我不需要整个对象的用户只是它的领域用户名这是一个海峡荷兰国际集团,所以我想是这样的:

Map<String, List<Order>> 

我试图映射用户使用Stream.map用户名字段,但不能得到它的权利。我怎样才能尽可能简单地做到这一点?

回答

11

您可以只使用groupingBy收集与username而不是整个User对象:

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

感谢,不知道我怎么错过了 – Jones

+0

这是简单的笑 –