答案:Collectors.summingInt用于对集合中对象的int属性求和,需配合Stream API使用,通过ToIntFunction提取值并累加。示例中统计Product列表的price总和为45,适用于List、Set等集合类型,仅支持int类型,null值需提前处理,性能良好,适合数据聚合。

在Java中,可以通过 Collectors.summingInt 方法对集合中的元素按指定整数属性进行求和。这个方法通常与 Stream API 配合使用,适用于统计对象列表中某个int类型字段的总和。
基本用法说明
Collectors.summingInt 接收一个 ToIntFunction 函数式接口作为参数,用于提取每个元素的int值,然后将这些值累加返回总和。
示例:统计商品总价
假设有一个商品类 Product,包含名称和价格:
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
class Product {
private String name;
private int price;
public Product(String name, int price) {
this.name = name;
this.price = price;
}
public int getPrice() {
return price;
}
}
现在有一个商品列表,想要统计所有商品的总价格:
立即学习“Java免费学习笔记(深入)”;
import java.util.*; import java.util.stream.Collectors; Listproducts = Arrays.asList( new Product("Apple", 10), new Product("Banana", 20), new Product("Orange", 15) ); int total = products.stream() .collect(Collectors.summingInt(Product::getPrice)); System.out.println("总价格: " + total); // 输出:总价格: 45 适用场景和注意事项
基本上就这些,用起来简单直观,特别适合做数据聚合统计。
- 只适用于 int 类型字段,如果字段是 long 或 double,应使用 summingLong 或 summingDouble
- 不会处理 null 值,确保数据源不为空或提前过滤
- 可用于任何实现了 Stream 的集合类型(如 List、Set 等)
- 性能良好,适合中大型数据集的汇总操作









