欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java Stream流之求和的实现

程序员文章站 2022-06-27 20:32:08
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;
 }

Java Stream流之求和的实现

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。