JAVA充使用stream分组后,对于每组分组数据进行处理
时间: 2024-02-23 12:03:31 浏览: 17
在Java中使用Stream分组后,可以使用`Collectors.groupingBy()`方法将数据按照指定条件进行分组,这个方法返回一个`Map`对象,其中的键是分组的条件,值是对应的数据集合。例如,对一个Student类的List按照性别进行分组并统计每个性别的平均成绩,可以使用以下代码:
```java
Map<String, Double> avgScoresByGender = students.stream()
.collect(Collectors.groupingBy(Student::getGender, Collectors.averagingDouble(Student::getScore)));
```
以上代码中,`Collectors.groupingBy()`方法按照`Student`对象的`gender`属性进行分组,然后使用`Collectors.averagingDouble()`方法统计每个分组的平均成绩。最终返回一个`Map`对象,其中的键是性别,值是对应的平均成绩。
如果需要对每个分组的数据进行进一步处理,可以使用`Map.forEach()`方法遍历`Map`对象,对每个分组的数据进行处理。例如,对于以上的分组结果,可以使用以下代码遍历每个分组并输出结果:
```java
avgScoresByGender.forEach((gender, avgScore) -> {
System.out.println("Gender: " + gender + ", Avg Score: " + avgScore);
});
```
以上代码中,使用`Map.forEach()`方法遍历`avgScoresByGender`对象,对于每个分组,输出性别和平均成绩。