Geo*_*org 2 java java-8 java-stream
我想知道这是否可以作为流函数更整洁地编写:
MyObject myObject = new MyObject();
for (Thing thing : listofThings) {
myObject = myObject.combine(thing);
}
Run Code Online (Sandbox Code Playgroud)
是的,使用Streamwith reduce:
MyObject myObject = listofThings.stream()
.reduce(new MyObject(),
MyObject::combine,
MyObject::combiner);
Run Code Online (Sandbox Code Playgroud)
where combiner是一个MyObject方法,它接受另一个MyObject实例并将其组合到当前对象中.
作为替代,可以先map对Thing实例MyObject的实例,然后减少这些情况下,以一个MyObject实例:
MyObject myObject = listofThings.stream()
.map(new MyObject()::combine)
.reduce(MyObject::combiner)
.orElseGet(MyObject::new);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |