通过stream流统计数据(多种方式)

1、统计集合中recruitmentPropertyName属性值为“正式工”的数量:

resultList.stream()
                .filter(item -> Optional.ofNullable(item.getRecruitmentPropertyName()).orElse("").compareTo("正式工") == 0)
                .collect(Collectors.toList()).stream()
                .count()

2、统计集合中educationalQualificationName属性值为“研究生”、“博士”的数量:

String [] postgraduates ={"硕士研究生","博士研究生"};

resultList.stream()
                .filter(item -> Arrays.asList(postgraduates).contains(Optional.ofNullable(item.getEducationalQualificationName()).orElse("")))
                .collect(Collectors.toList()).stream()
                .count());

3、统计集合中 BigDecimal 类型的 originalValue字段 的总和:

resultList.stream()
                .filter(e -> !ObjectUtils.isEmpty(e.getOriginalValue()))//过滤掉空值
                .map(DmShipBaseInfo::getOriginalValue)//获取OriginalValue字段值
                .reduce(BigDecimal.ZERO, BigDecimal::add)//聚合相加
                .divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros() //除以10000,四舍五入保留两位小数,去除末尾0

4、统计集合中去掉id重复数据之后的总数:

resultList.stream()
                .map(r -> r.getId()).distinct()
                .collect(Collectors.toList())
                .size()

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要统计一个stream)中元素的数量,可以使用Java 8中的Stream API提供的count()方法。具体示例如下: ``` List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); long count = numbers.stream().count(); System.out.println("Count: " + count); ``` 输出结果为: ``` Count: 5 ``` count()方法返回的是一个long类型的值,表示中元素的数量。 ### 回答2: 在编程中,Stream可以用于快速且方便地对数据进行各种操作和处理。统计数量是其中一种常见的操作。 通过Stream,我们可以使用count()方法来统计中元素的数量。count()方法会返回一个long类型的值,表示中的元素个数。 例如,假设我们有一个包含整数的列表,我们可以通过以下步骤来统计列表中元素的数量: 1. 创建一个整数列表: ``` List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); ``` 2. 将列表转换为: ``` Stream<Integer> stream = numbers.stream(); ``` 3. 使用count()方法统计中元素的数量: ``` long count = stream.count(); ``` 在这个例子中,count的值将为5,因为列表中有5个整数。 除了count()方法,Stream还提供了许多其他的统计方法,例如sum()、min()、max()等,可以根据具体需要选择使用。 需要注意的是,Stream是一次性使用的,一旦对进行了终结操作(如count()),则不能再使用该进行其他操作。如果需要进行多次操作,可以创建新的来处理数据。 总之,Stream提供了简洁且灵活的方式统计数据的数量。通过使用count()方法,我们可以方便地获取中元素的个数。 ### 回答3: streamJava 8引入的一个强大的函数式编程特性,它可以极大地简化集合的遍历和操作。而统计数量是stream中非常常见的一个操作。 在stream中,我们可以通过使用`count()`方法来统计集合中元素的数量。这个方法会返回一个`long`类型的值,代表集合中的元素个数。 具体的使用方法如下所示: ``` List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); long count = numbers.stream().count(); System.out.println("集合中的元素数量为:" + count); ``` 上面的代码中,我们先创建了一个包含数字1到5的List集合,然后将其转化为stream,并调用`count()`方法统计集合中的元素数量。最后,将结果输出到控制台。 输出结果为: ``` 集合中的元素数量为:5 ``` 通过stream方式统计集合中的元素数量非常简单,代码量也很少。这种函数式编程的方式使得我们的代码更加简洁和易读。同时,stream还提供了丰富的操作方法,可以轻松实现集合的筛选、映射、排序等功能,为我们的开发带来了很多便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值