JAVA 分组求和
时间: 2023-09-03 10:14:36 浏览: 101
在Java中,可以使用Stream的groupingBy方法进行分组操作,并结合Collectors的summingInt或summingDouble等方法来进行求和操作。下面是一个示例代码:
```
// 准备测试数据
List<Student> students = Arrays.asList(
new Student("张三", 80),
new Student("李四", 90),
new Student("张三", 90),
new Student("李四", 85)
);
// 分组求和
Map<String, Integer> sumByGroup = students.stream()
.collect(Collectors.groupingBy(Student::getName, Collectors.summingInt(Student::getScore)));
System.out.println(sumByGroup);
```
这段代码将学生对象按照姓名进行分组,并对每个分组中的学生的分数进行求和操作。执行结果会输出一个以姓名为键、分数总和为值的Map,例如:
```
{张三=170, 李四=175}
```
这表示张三的分数总和为170,李四的分数总和为175。通过这种方式,可以快速、简洁地实现分组求和的操作。引用提供了更多关于Java 8 Stream中利用groupingBy进行多字段分组求和的案例,可以作为参考。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [java stream实现分组BigDecimal求和,自定义分组求和](https://blog.csdn.net/weixin_38387358/article/details/129003917)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* [Java8 stream 中利用 groupingBy 进行多字段分组求和案例](https://download.csdn.net/download/weixin_38692928/12821045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文