Sweetbreads 2021-05-13 14:45 采纳率: 50%
浏览 124
已采纳

java的lamda表达式求和问题遇到字符串类型如何解决

@Data
public class MonthlyBudgetReportResponse {

    @ApiModelProperty(value = "数据类型(0-经营分类数据;1-总合计)")
    private String resultType;

    @ApiModelProperty(value = "品类名")
    private String catalogName;

    @ApiModelProperty(value = "收入预算本年")
    private String incomeBudgetBn;

    @ApiModelProperty(value = "收入预算本期")
    private String incomeBudgetBq;

    @ApiModelProperty(value = "收入本期完成数")
    private String incomeBudgetBqComplete;

    @ApiModelProperty(value = "毛利预算本年")
    private String profitBudgetBn;

    @ApiModelProperty(value = "毛利预算本期")
    private String profitBudgetBq;

    @ApiModelProperty(value = "毛利本期完成数")
    private String profitBudgetBqComplete;


}

这个是从数据库查询返回的实体类,现在我要实现对这个List的集合的收入以及毛利的汇总求和。数据库的实现想过,但是要多一条sql,而且原本sql已经很复杂了,不想再为一个单独求和再复制一遍。用java代码如何实现?有lamda表达式的最好。

//假设这和个是已经从数据库查出来的单条数据。有多条
List<MonthlyBudgetReportResponse> resultList
  • 写回答

6条回答 默认 最新

  • 小P聊技术 2021-05-13 15:12
    关注
    @Data
    public class MonthlyBudgetReportResponse {
    
        @ApiModelProperty(value = "数据类型(0-经营分类数据;1-总合计)")
        private String resultType;
    
        @ApiModelProperty(value = "品类名")
        private String catalogName;
    
        @ApiModelProperty(value = "收入预算本年")
        private String incomeBudgetBn;
    
        @ApiModelProperty(value = "收入预算本期")
        private String incomeBudgetBq;
    
        @ApiModelProperty(value = "收入本期完成数")
        private String incomeBudgetBqComplete;
    
        @ApiModelProperty(value = "毛利预算本年")
        private String profitBudgetBn;
    
        @ApiModelProperty(value = "毛利预算本期")
        private String profitBudgetBq;
    
        @ApiModelProperty(value = "毛利本期完成数")
        private String profitBudgetBqComplete;
    
        public MonthlyBudgetReportResponse(String incomeBudgetBn, String profitBudgetBq) {
            this.incomeBudgetBq = incomeBudgetBn;
            this.profitBudgetBq = profitBudgetBq;
        }
    
        public static void main(String[] args) {
            List<MonthlyBudgetReportResponse> reportResponseList = new ArrayList<>();
    
            reportResponseList.add(new MonthlyBudgetReportResponse("11.1","15.1"));
            reportResponseList.add(new MonthlyBudgetReportResponse("12.3","13.2"));
    
            BigDecimal reduce = reportResponseList.stream().map( i -> new BigDecimal(i.getIncomeBudgetBq())).reduce(BigDecimal.ZERO, BigDecimal::add);
            System.out.println(reduce);
        }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?