Fra*_*Xho 8 java java-8 java-stream
在map函数中Stream我们可以将一个对象转换为另一个对象,因此我们可以Stream将包含3个A类元素的一个转换为另一个StreamB类型的3个元素.
如何根据条件将3个类型的元素转换A Stream为6个或更多类型的元素B Stream?
在代码方面.
我们可以做的
Stream<B> converted = original.map( a -> new B(a) );
Run Code Online (Sandbox Code Playgroud)
但我们怎么能这样做呢?
Steam<B> converted = original.map( a -> {
if(a.split()){
return [ new B(a), new B(a) ];
}else return new B(a);
});
Run Code Online (Sandbox Code Playgroud)
我无法找到并理解如何做到这一点.谢谢你.
您可以使用flatMap它将原始元素映射Stream到Stream某种类型的元素.
Steam<B> converted = original.flatMap( a -> {
if(a.split()){
return Stream.of(new B(a), new B(a));
} else {
return Stream.of(new B(a));
}
});
Run Code Online (Sandbox Code Playgroud)
要么
Steam<B> converted = original.flatMap(a -> a.split() ?
Stream.of(new B(a), new B(a)) :
Stream.of(new B(a)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |