-
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());
- 函數代碼實現
java8-數值計算
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.