java List里对象某属性的求和

1.计算一个number类型的List对象总和

Integer[] integerArray = {1, 3, 15, 10, 16}; List<Integer> list = new ArrayList<>(Arrays.asList(integerArray)); IntSummaryStatistics summaryStatistics = list.stream().mapToInt((s) -> s).summaryStatistics(); System.out.println("总和:" + summaryStatistics.getSum()); System.out.println("平均数:" + summaryStatistics.getAverage()); System.out.println("总个数:" + summaryStatistics.getCount()); System.out.println("最大值:" + summaryStatistics.getMax()); System.out.println("最小值:" + summaryStatistics.getMin());

2.计算一个List对象中某个字段总和

2.1求和字段属性为Integer时:

LambdaQueryWrapper<TransportInfo> queryWrapper2 =Wrappers.lambdaQuery(TransportInfo.class);
queryWrapper2.eq(TransportInfo::getStartContainerFactoryId,fId);
2 3 int total = list.stream().mapToInt(User::getAge).sum(); //上下等同 total=ageSum int ageSum = userList.stream().collect(Collectors.summingInt(User::getAge));

List<TransportInfo> list=transportInfoService.list(queryWrapper2);

Integer tTotal=list.stream().collect(Collectors.summingInt(TransportInfo::getContainerUse));

2.2求和字段属性为BigDecimal时:

BigDecimal totalCost = list.stream().map(StatisticsFinanceCostDetail::getRmbAmount).reduce(BigDecimal.ZERO, BigDecimal::add);

经验分享 程序员 微信小程序 职场和发展