意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

在Java中,可以使用StreamAPI中的Collectors.groupingBy方法对数据流进行分组,然后结合Collectors.summingInt、Collectors.summingLong或Collectors.summingDouble方法来对分组后的数据进行求和操作

来源:恒创科技 编辑:恒创科技编辑部
2024-02-21 13:49:08

在Java中,可以使用StreamAPI中的Collectors.groupingBy方法对数据流进行分组,然后结合Collectors.summingIntCollectors.summingLongCollectors.summingDouble方法来对分组后的数据进行求和操作。

下面是一个示例代码,演示如何对一个包含多个对象的数据流按照某个属性进行分组,并对每个分组进行求和操作:

importjava.util.Arrays; importjava.util.List; importjava.util.Map; importjava.util.stream.Collectors; classItem{ Stringcategory; intamount; publicItem(Stringcategory,intamount){ this.category=category; this.amount=amount; } publicStringgetCategory(){ returncategory; } publicintgetAmount(){ returnamount; } } publicclassMain{ publicstaticvoidmain(String[]args){ List<Item>items=Arrays.asList( newItem("A",10), newItem("B",20), newItem("A",30), newItem("B",40), newItem("A",50) ); //按照category分组,并对每个分组的amount求和 Map<String,Integer>sumByCategory=items.stream() .collect(Collectors.groupingBy(Item::getCategory,Collectors.summingInt(Item::getAmount))); System.out.println(sumByCategory); } }

以上代码将输出一个包含不同category的总和的Map:




在Java中,可以使用StreamAPI中的Collectors.groupingBy方法对数据流进行分组,然后结合Collectors.summingInt、Collectors.summingLong或Collectors.summingDouble方法来对分组后的数据进行求和操作

{A=90,B=60}

上一篇: Maven的profile属性可以用来定义不同环境下的配置信息,例如开发环境、测试环境、生产环境等 下一篇: 如果您意外删除了数据库中的数据,可以尝试以下方法来恢复数据: 使用备份数据:如果您定期备份数据库,可以通过备份数据来恢复被删除的数据