java list stream分组值为数量
时间: 2024-10-15 10:03:30 浏览: 32
JAVA8 stream中三个参数的reduce方法对List进行分组统计操作
5星 · 资源好评率100%
在 Java 中,可以使用 Stream API 的 `collect` 方法结合 `Collectors.groupingBy` 函数来对 List 中的数据按照某个属性进行分组,并统计每个组的数量。这个过程通常用于数据的聚合操作,比如将列表中的对象按某种条件划分到不同的组,然后得到每个组内元素的数量。
以下是一个简单的示例,假设我们有一个 Person 对象的列表,想要按照年龄 groupBy 并计算每组的人数:
```java
List<Person> people = ... // 你的Person对象列表
Map<Integer, Long> ageGroupedCount = people.stream()
.collect(Collectors.groupingBy(Person::getAge,
Collectors.counting()));
// 输出结果是一个 map,key 是年龄,value 是该年龄范围内的人数
for (Map.Entry<Integer, Long> entry : ageGroupedCount.entrySet()) {
System.out.println("年龄 " + entry.getKey() + " 的人有 " + entry.getValue() + " 个");
}
```
在这个例子中,`Person::getAge` 表示使用 `Person` 类的 `getAge()` 方法作为键生成器(KeyExtractor),`Collectors.counting()` 表示计算每个组内的元素数量。
阅读全文