java 使用stream累加对象中某个属性的值并返回总和
•
算法结构
假设有一个包含对象的List列表,每个对象都有一个属性value,可以使用Java 8中的Stream流来累加对象中某个属性的值并返回总和。以下是一些可能的实现方法:
1、使用reduce方法:
List list = ...; int sum = list.stream().mapToInt(MyObject::getValue).reduce(0, Integer::sum);
这里使用了mapToInt方法将每个对象转换为其value属性的值,然后使用reduce方法将这些值累加起来。
2、使用sum方法:
List list = ...; int sum = list.stream().mapToInt(MyObject::getValue).sum();
这里也使用了mapToInt方法将每个对象转换为其value属性的值,然后使用sum方法将这些值累加起来。
3、使用forEach方法:
List list = ...; AtomicInteger sum = new AtomicInteger(); list.stream().forEach(o -> sum.addAndGet(o.getValue()));
这里使用了AtomicInteger来存储总和,并使用forEach方法遍历每个对象并将其value属性的值累加到总和中。
无论使用哪种方法,都应该根据实际情况选择最合适的方法。
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/c2d8308deb.html
