java减少对象列表中的整数属性
我有一个这种结构的模型
public class MyModel {
private long firstCount;
private long secondCount;
private long thirdCount;
private long fourthCount;
public MyModel(firstCount,secondCount,thirdCount,fourthCount)
{
}
//Getters and setters
}
假设我有一个包含以下数据的模型列表
MyModel myModel1 = new MyModel(10,20,30,40);
MyModel myModel2 = new MyModel(50,60,70,80);
List<MyModel> modelList = Arrays.asList(myModel1, myModel2);
假设我想找出所有模型的firstCount之和,我可以这样做
Long collect = modelList.stream().collect
(Collectors.summingLong(MyModel::getFirstCount));
如果我想在一次过程中找出所有模型中的属性总和,该怎么办?有没有办法做到这一点
输出应该是
- firstCount之和=60
- 二次计数之和=80
- 第三个总数=100
- 第四计数之和=120
# 1 楼答案
您可以创建一个方法}
add(MyModel)
,返回MyModel
的一个新实例,并使用Stream
的reduce
方法以及@Override
{没有身份
身份认同
# 2 楼答案
使用
MyModel
作为累加器: