使用java8的stream对数组进行求和

摘要:
List<Map<String,Object>>List=newArrayList<>();Map<String,Object>stu1=newHashMap<String,Object>();stu1.put;stu1.put;列表添加;Mapstu2=newHashMap();stu2.put;stu2.put;列表添加;Mapstu3=newHashMap();stu3.put;stu3.put;列表添加;BigDecimalsum=list.stream().map.reduce;System.out.println;2.对double类型的值求和。

1、对BigDecimal类型的值求和。

List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> stu1 = new HashMap<String, Object>();
stu1.put("name", "张三");
stu1.put("score", new BigDecimal(80));
list.add(stu1);
Map<String,Object> stu2 = new HashMap<String, Object>();
stu2.put("name", "李斯");
stu2.put("score", new BigDecimal(90));
list.add(stu2);
Map<String,Object> stu3 = new HashMap<String, Object>();
stu3.put("name", "王武");
stu3.put("score", new BigDecimal(60));
list.add(stu3);

BigDecimal sum = list.stream().map(
x -> new BigDecimal(x.get("score").toString())
).reduce(BigDecimal.ZERO,BigDecimal::add);

System.out.println("三人总分:"+sum);

2、对double型的值求和。

List<DisProductPo> list2 = new ArrayList<>();
DisProductPo p1 = new DisProductPo();
p1.setPrintvalue(120);
p1.setViewspotticketname("产品1");
list2.add(p1);
DisProductPo p2 = new DisProductPo();
p2.setPrintvalue(80);
p2.setViewspotticketname("产品2");
list2.add(p2);
DisProductPo p3 = new DisProductPo();
p3.setPrintvalue(50);
p3.setViewspotticketname("产品3");
list2.add(p3);

double sum1 = list2.stream().collect(Collectors.summingDouble(x -> ((Double) x.getPrintvalue())));
double sum2 = list2.stream().mapToDouble(DisProductPo::getPrintvalue).sum();

System.out.println("总价格:"+sum1+"--"+sum2);

免责声明:文章转载自《使用java8的stream对数组进行求和》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Hacker(23)----破解常见文件密码API HOOK库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

你真的了解数组吗?

前言: 数组,应该是我们每个人学习编程时接触的第一个数据结构。它很简单,但是却很重要。 为什么这么说呢? 很多高级的数据结构,其实都是由数组组成的,或者说是用数组来实现的。 比如跳跃表、散列表是由数组+链表组成的。 堆、完全二叉树、图(邻接矩阵存储)都可以用数组来实现。 所以说学好数组,就等于为你学习高级的数据结构打下了坚实的基础。 什么是数组? 数组是一...

倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_数组

声明和实例化数组的方法如下,你可以声明各种基本类型的数组 i: INT; array1: ARRAY [0..500] OF INT;   FOR i := 0 TO 5000 DO     array1[i] := i; END_FOR   也可以声明下标不从0开始的数组,比如array2和array3就都不是下标从0开始的数组  ...

VBA学习_2:数组:同类型的多个变量的集合

声明数组:名称、数据类型和数组大小 1、通过起始和终止索引号定义数组大小   指定开始索引:Public | Dim 数组名称(a To b) As 数据类型, a和b为整数(不能是变量),分别表示数组的开始和终止索引号,可保存数据个个数(b-a+1)个   未指定开始索引:Public | Dim数组名称(a) As 数据类型  ,从0开始到a个元素...

关于JavaScript的数组随机排序

昨天了解了一下Fisher–Yates shuffle费雪耶兹随机置乱算法,现在再来看看下面这个曾经网上常见的一个写法: functionshuffle(arr) { arr.sort(function() { return Math.random() - 0.5; }); } 或者使用更简洁的 ES6 的写法: funct...

Go语言基础之数组

Go语言基础之数组 本文主要介绍数组(array)及它的基本使用。 Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 基本语法: // 定义一个长度为3元素类型为int的数组a var a [3]int 数组定义: var 数组变量名 [元素数量]T 比如:var a...

python(leetcode)-350两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出...