由lambda stream()汇总HashMap <string,list <customerdetail =“” >>

时间:2018-11-26 08:24:07

标签: lambda java-8 sum java-stream

如何通过lambda流sum()来汇总客户点?

public class CustomerDetail {
    private int point = 1;
    private Integer id;

    public CustomerDetail() { 
        this(0);
    }
    public CustomerDetail(int id) { 
        this.id = id;
    }

    public void setPoint(int point) {
        this.point = point;
    }
    public int getPoint() {
        return point;
    }
}

HashMap<String, List<CustomerDetail>> list = new HashMap<String, List<CustomerDetail>>()

1 个答案:

答案 0 :(得分:2)

您可以这样做

int sumOfPoints = list.values().stream()
                         .flatMap(List::stream)
                         .mapToInt(CustomerDetail::getPoint)
                         .sum();