学堂 学堂 学堂公众号手机端

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

lewis 1年前 (2024-03-16) 阅读数 4 #技术

在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:


{A=90,B=60}
版权声明

本文仅代表作者观点,不代表博信信息网立场。

上一篇:linux中finger找不到怎么办 下一篇:Debugger
热门