【发布时间】:2016-12-29 06:11:50
【问题描述】:
我想创建对象 MyObject 的实例,其中的每个字段都是来自
的该字段的值的总和我创建一个对象
public class MyObject{
int value;
double length;
float temperature;
MyObject(int value, double length, float temperature){
this.value = value;
this.length = length
this.temperature = temperature
}
}
然后我构造对象列表:
List<MyObject> list = new ArrayList<MyObject>{{
add(new MyObject(1, 1d, 1.0f));
add(new MyObject(2, 2d, 2.0f));
add(new MyObject(3, 3d, 3.0f));
}}
我要创建对象 (new MyObject(6, 6d, 6f))
很容易对每个流求和一个字段:
Integer totalValue = myObjects.parallelStream().mapToInt(myObject -> myObject.getValue()).sum(); //returns 6;
或
Double totalLength = myObjects.parallelStream().mapToDouble(MyObject::getLength).sum(); //returns 6d
然后构造对象new MyObject(totalValue, totalLength, totalTemperature);
但是我可以在一个流中汇总所有字段吗? 我希望流返回
new MyObject(6, 6d, 6.0f)
【问题讨论】:
标签: java java-8 java-stream