Grouping List<CustomerOrder> into Map<Gender, Money>

Viewed 109
public class CustomerOrder {

    private final Gender gender;
    private final Order order;

    public Gender getGender() {
        return gender;
    }

    public Order getOrder() {
        return order;
    }

}

public class Order {

    private final long orderAmount;

    public long getOrderAmount() {
        return orderAmount;
    }

}

I'd like to achieve the java streaming equivalent of:

SELECT Gender, SUM(orderAmount) FROM orders
GROUP BY Gender;

Thanks!

EDIT: I over simplified the problem - CustomerOrder contains an Order, which contains the orderAmount

I have managed to get to Map<Gender, List<Long>> by something like:

Map<Gender, List<Long>> map = orders.stream()
    .collect(Collectors.groupingBy(CustomerOrder::getGender))
2 Answers
Related