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;
 }

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