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

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

报告相同问题?

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装