Collectors.counting()方法介绍一下可以吗
时间: 2023-11-27 21:51:45 浏览: 86
Python 中的 collections.Counter 模块详解
`Collectors.counting()` 是 Java 8 引入的一种收集器(Collector),它可以用于统计流中元素的数量,并返回一个 `long` 类型的结果。一般与 `groupingBy()` 结合使用,可以用于对流中元素按照某一属性进行分组,并统计每个分组中元素的数量。
例如,我们有一个 `List` 类型的 `Person` 对象列表,我们可以使用以下代码对它们按照年龄进行分组,并统计每个分组中元素的数量:
```java
Map<Integer, Long> countByAge = personList.stream()
.collect(Collectors.groupingBy(Person::getAge, Collectors.counting()));
```
上述代码中,`groupingBy()` 方法按照 `Person` 对象的 `age` 属性进行分组,然后将每个分组中元素的数量统计出来,最终返回一个 `Map<Integer, Long>` 类型的结果,其中 `Integer` 表示分组属性,`Long` 表示该分组中元素的数量。
当然,`counting()` 方法也可以单独使用,用于统计流中元素的总数。例如:
```java
long count = personList.stream().collect(Collectors.counting());
```
上述代码统计了 `personList` 中元素的总数,并返回一个 `long` 类型的结果。
阅读全文