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属性的值累加到总和中。
无论使用哪种方法,都应该根据实际情况选择最合适的方法。
更多推荐
已为社区贡献5条内容
所有评论(0)