I have a list of orders and I want to group them by user using Java 8 stream and Collectors.groupingBy:
orderList.stream().collect(Collectors.groupingBy(order -> order.getUser())
This return a map containing users and the list of orders:
Map<User, List<Order>>
I don't need the entire object User just a field of it username which is a String, so I want to get something like this:
Map<String, List<Order>>
I tried to map the User to the username field using Stream.map but can't get it right. How can I do this as simply as possible?
You can just use the groupingBy
collector with the username
instead of the whole User
object:
orderList.stream().collect(Collectors.groupingBy(order -> order.getUser().getUsername())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With