【发布时间】:2021-01-15 10:37:43
【问题描述】:
我想使用 java stream() 计算包含在另一个集合中的集合中包含的字段的总和。 如果计算字段直接在第一个集合中,我只知道该怎么做,像这样:
return collectionOfObjectA.stream()
.mapToDouble(c1 -> c1.getSalary()).sum();
但是现在“collectionOfObjectA”包含另一个“collectionOfObjectB”,而最后一个是包含“salary”字段的那个。
对象A:
{
id:1,
Collection<ObjectB>
}
和对象B:
{
id:1,
salary: 4000
}
我现在的计算方式如下:
Double result=0.0;
for (ObjectA obj: collectionOfObjectA())
{
for(ObjectB objB : objA.getcollectionOfObjectB()){
result+= objB.getSalary();
}
}
return result;
【问题讨论】:
-
collection1()是方法还是变量? -
你能告诉我们
collection1和collection2的类型吗? -
抱歉刚刚编辑了问题
标签: java java-stream