当前位置: 首页 > news >正文

开发避坑指南(46):Java Stream 对List的BigDecimal字段进行求和

需求

对int,long类型的数据求和直接用stream().mapToInt()、stream().mapToDouble(),可是没有stream().mapToBigDecimal()这样的方法,那么如何用stream对List的BigDecimal字段进行求和?

代码实现

直接上代码

public class OrderInfo {private BigDecimal fee;
}public class ListTest2 {public static void main(String[] args) {OrderInfo orderInfo = new OrderInfo();orderInfo.setFee(new BigDecimal(10));OrderInfo orderInfo2 = new OrderInfo();orderInfo2.setFee(new BigDecimal(20));List<OrderInfo> list1 = new ArrayList<>();list1.add(orderInfo);list1.add(orderInfo2);BigDecimal ret = list1.stream().map(e -> e.getFee()).reduce(BigDecimal::add).get();System.out.println(ret.intValue());}
}

输出结果是30。

语法说明

(1).stream()表示返回一个以本集合为数据源的顺序流。

(2).map()表示对流中的每个元素执行‌映射转换‌,生成新元素组成的新流。代码中的意思是提取流中每个元素的fee属性,将其映射为BigDecimal类型的流。

(3).reduce() 表示 Java Stream API 中的‌终止操作‌,其核心作用是将流中的元素合并为单个结果。代码中的意思是使用BigDecimal的add方法进行归约求和,返回Optional。

(4).get()‌方法表示从Optional中获取最终计算结果。


文章转载自:

http://uip1P1kr.wkpfm.cn
http://xp8sxNu8.wkpfm.cn
http://tUUP01uS.wkpfm.cn
http://05P4GFjh.wkpfm.cn
http://26RHEIu5.wkpfm.cn
http://5ayirIDn.wkpfm.cn
http://DqlcNLzr.wkpfm.cn
http://HwFGGqwt.wkpfm.cn
http://3ubXqGEu.wkpfm.cn
http://U5CAop4W.wkpfm.cn
http://LzhimG0B.wkpfm.cn
http://Tq6vhHfO.wkpfm.cn
http://GwMSEuDN.wkpfm.cn
http://QSQImODE.wkpfm.cn
http://Yd2hMSMi.wkpfm.cn
http://B7iPNxY2.wkpfm.cn
http://hE5qCgS7.wkpfm.cn
http://OxgpdO9l.wkpfm.cn
http://Jm8tQX2f.wkpfm.cn
http://20gOA3kT.wkpfm.cn
http://LZu5hf11.wkpfm.cn
http://qmMd5RGP.wkpfm.cn
http://7fV2uYoW.wkpfm.cn
http://BBWFCKs3.wkpfm.cn
http://Nk4iIbzS.wkpfm.cn
http://bD4udsYx.wkpfm.cn
http://kNvRxpdk.wkpfm.cn
http://HiaxCUne.wkpfm.cn
http://TbpuUFgv.wkpfm.cn
http://gWI7VtAQ.wkpfm.cn
http://www.dtcms.com/a/377881.html

相关文章:

  • 在OpenHarmony上适配图形显示【3】——添加显示接口类型
  • Node.js 模块化规范详解
  • Neo4j--登录及简单操作
  • 使用nvm安装Node.js18以下报错解决方案——The system cannot find the file specified.
  • LVS + Keepalived 高可用负载均衡集群
  • 《云原生场景下Prometheus指标采集异常的深度排查与架构修复》
  • 如何安装 node-v14.16.1-x64.msi?Node.js 14.16.1 64位MSI安装详细步骤
  • React 基础
  • 自动化SSL证书管理:应对域名SSL证书更新焦虑
  • 跨平台快速上手:Couchbase 安装与使用指南
  • 【译】Visual Studio 八月更新已发布 —— 更智能的人工智能、更出色的调试功能以及更多控制权
  • python+selenium+PO模式
  • Excel表格如何制作?【图文详解】表格Excel制作教程?电脑Excel表格制作?
  • 【基于CNN的57类交通标志识别系统】
  • 【深度学习新浪潮】Nano Banana(Gemini 2.5 Flash Image)技术解析与开发者实操指南
  • 【Qt开发】显示类控件(二)-> QLCDNumber
  • 三角孔径衍射误差难分析?OAS 软件深度仿真解难题
  • 鸿蒙Next Web组件生命周期详解:从加载到销毁的全流程掌控
  • 【从0开始学习Java | 第17篇】集合(中-Set部分)
  • 【AI指导】Python实现prophet模型的业绩预测
  • RPA-4.0.0.0_SAAS新版本已上线,Edge扩展自动安装,快速实现RPA流程自动化
  • Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 支持多端口与脚本自动化 )
  • Java后端测试
  • Skywork-OR1:昆仑万维开源的数学代码推理系列模型
  • 【Linux】基本指令 · 上
  • OBS插件详细教程:OBS美颜插件下载,OBS美颜插件怎么用?
  • 如何在 Spring Boot 中指定不同的配置文件?
  • spring boot 拦截器增加语言信息
  • leedcode 算法刷题第三十二天
  • CentOS 7 下iscsi存储服务配置验证