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

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条)

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?