gpt4 book ai didi

java - 如何在 java 8 流中使用一对多映射?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:31 25 4
gpt4 key购买 nike

Streammap 函数中,我们可以将一个对象转换为另一个对象,因此我们可以隐藏一个包含 3 个 A 类型元素的 Stream到另一个 B 类型的 3 个元素的 Stream

如何将 A Stream 类型的 3 个元素转换为 B Stream 类型的 6 个或更多元素取决于条件?

在代码方面。

我们可以做到

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)));

关于java - 如何在 java 8 流中使用一对多映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52310770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com