站点图标 AI技术聚合

java 使用stream累加对象中某个属性的值并返回总和

假设有一个包含对象的List列表,每个对象都有一个属性value,可以使用Java 8中的Stream流来累加对象中某个属性的值并返回总和。以下是一些可能的实现方法:

1、使用reduce方法:

List<MyObject> list = ...;
int sum = list.stream().mapToInt(MyObject::getValue).reduce(0, Integer::sum);

这里使用了mapToInt方法将每个对象转换为其value属性的值,然后使用reduce方法将这些值累加起来。
2、使用sum方法:

List<MyObject> list = ...;
int sum = list.stream().mapToInt(MyObject::getValue).sum();

这里也使用了mapToInt方法将每个对象转换为其value属性的值,然后使用sum方法将这些值累加起来。
3、使用forEach方法:

List<MyObject> list = ...;
AtomicInteger sum = new AtomicInteger();
list.stream().forEach(o -> sum.addAndGet(o.getValue()));

这里使用了AtomicInteger来存储总和,并使用forEach方法遍历每个对象并将其value属性的值累加到总和中。
无论使用哪种方法,都应该根据实际情况选择最合适的方法。

文章出处登录后可见!

已经登录?立即刷新
退出移动版