Java Stream流之求和的实现
程序员文章站
2022-03-26 23:43:11
bigdecimal:bigdecimal bb =list.stream().map(plan::getamount).reduce(bigdecimal.zero,bigdecimal::add)...
bigdecimal:
bigdecimal bb =list.stream().map(plan::getamount).reduce(bigdecimal.zero,bigdecimal::add);
int、double、long:
double max = list.stream().maptodouble(user::getheight).sum();
补充:java8-stream流之数值函数(求和、最大值、最小值、平均值)
我就废话不多说了,大家还是直接看代码吧~
//todo stream流的使用 //todo filter:过滤操作;保留符合过滤条件的对象;这是一个中间操作;后面可以带最终操作 //todo maptoint: 将数据根据double类型来处理; public static void main(string[] args) { list<salesorder> list = createsalesorder(); //获取集合中城市为上海的数量 system.out.println("maptoint获取和:"+list.stream().filter(s -> s.getconsigneecity().equals("上海")) .maptoint(salesorder::getcreateuserid).sum()); //利用stream流中的函数获取相关数值信息 intsummarystatistics summarystatistics = list.stream().filter(s -> s.getconsigneecity().equals("上海")) .maptoint(salesorder::getcreateuserid).summarystatistics(); system.out.println("summarystatistics函数获取数量:"+summarystatistics.getcount()); system.out.println("summarystatistics函数获取平均值:"+summarystatistics.getaverage()); system.out.println("summarystatistics函数获取最大值:"+summarystatistics.getmax()); system.out.println("summarystatistics函数获取最小值:"+summarystatistics.getmin()); system.out.println("summarystatistics函数获取和"+summarystatistics.getsum()); } static list<salesorder> createsalesorder(){ list<salesorder> list = new linkedlist<>(); salesorder salesorder = new salesorder(); salesorder.setcreateuserid(12); salesorder.setconsigneecity("上海"); list.add(salesorder); salesorder = new salesorder(); salesorder.setconsigneecity("上海"); salesorder.setcreateuserid(24); list.add(salesorder); salesorder = new salesorder(); salesorder.setconsigneecity("北京"); salesorder.setcreateuserid(18); list.add(salesorder); salesorder = new salesorder(); salesorder.setconsigneecity("深圳"); salesorder.setcreateuserid(16); list.add(salesorder); salesorder = new salesorder(); salesorder.setconsigneecity("广州"); salesorder.setcreateuserid(30); list.add(salesorder); salesorder = new salesorder(); salesorder.setconsigneecity("杭州"); salesorder.setcreateuserid(40); list.add(salesorder); return list; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
推荐阅读