Bigdecimal分组求和

346 阅读1分钟

伪代码


//不分组
BigDecimal intergralAmount = integralRecords.stream().map(UserIntegralRecord::getIntegral).reduce(BigDecimal.ZERO,BigDecimal::add);

//分组
//Map<uid,总积分>
Map<Integer, BigDecimal> integralMap =  integralRecords.stream().collect(
        Collectors.groupingBy(UserIntegralRecord::getUid,
                Collectors.reducing(BigDecimal.ZERO,UserIntegralRecord::getIntegral,BigDecimal::add)));

实体类信息

public class UserIntegralRecord implements Serializable {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "用户uid")
    private Integer uid;

    @ApiModelProperty(value = "变动积分")
    private BigDecimal integral;


}