[英]Collectors mapping() + reducing() - folding stream element having One-To-Many relationship with Java 8
[英]How to use one to many Mapping in java 8 stream?
在Stream
map
函数中,我们可以将一个对象转换为另一个对象,因此我们可以将一个包含3个A类元素的Stream
转换为另一个包含B类型的3个元素的Stream
。
如何转换类型的3个元素A
Stream
类型为6个以上的元素B
Stream
取决于条件?
在代码方面。
我们可以做的
Stream<B> converted = original.map( a -> new B(a) );
但我们怎么能这样做呢?
Steam<B> converted = original.map( a -> {
if(a.split()){
return [ new B(a), new B(a) ];
}else return new B(a);
});
我无法找到并理解如何做到这一点。 谢谢你。
您可以使用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));
}
});
要么
Steam<B> converted = original.flatMap(a -> a.split() ?
Stream.of(new B(a), new B(a)) :
Stream.of(new B(a)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.