-
BigDecimal
- 求和
BigDecimal amount = list.stream().map(Order::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
- 求和
-
List
- 计算某属性的和
//方式一 int goodsQty = list.stream().mapToInt(OrderDetail::getGoodsSum).sum(); //方式二 int goodsQty = list.stream().collect(Collectors.summingInt(OrderDetail::getGoodsSum)).intValue();
- 分组后计算每组数据某属性的和
Map<String,Integer> goodsSum = list().stream().collect(Collectors.groupingBy(OrderDetail::getGoodsSku,Collectors.summingInt(OrderDetail::getGoodsSum)));
- 分组后计算每组数据的数量
Map<String,Long> mobileMap = list.stream().collect(Collectors.groupingBy(Customer::getMobile, Collectors.counting()));
- 获取集合对象中某个属性的最小值
BigDecimal minUnitPrice = list.stream().map(GoodsSku::getPrice).min((p1, p2)->p1.compareTo(p2)).get();
- 获取集合中某属性的数量
int GoodsSize=list.stream().collect(Collectors.groupingBy(OrderDetail::getGoodsSku)).size();
- 综合使用(过滤条件后求和)
allBoxWeight = caseDataList.stream().filter(orderCase->null!=orderCase.getCaseAllPrice()) .map(SalesOrderCase::getCaseAllWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
- 计算某属性的和
-
summaryStatistics函数
- 函数代码实现
IntSummaryStatistics summaryStatistics = list.stream().mapToInt(Order::getGoodsId).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());
- 函数代码实现
来源:CSDN
作者:一只渣渣
链接:https://blog.csdn.net/dengdai123654/article/details/103951396