如何合并/压缩多个FS2.Stream值,生成对应元素元组流?
FS2 多流对应位置元素组合为元组的实现方法
FS2 提供了一系列zip相关方法,可直接实现多流对应位置元素的元组组合,具体用法如下:
两个流组合:使用基础的
zip方法,返回包含二元组的流val combinedAB = sa.zip(sb) // 输出结果:Stream((a1,b1), (a2,b2), (a3,b3), ...)三个及以上流组合:FS2 内置了
zip3到zip22的方法,分别对应3到22个流的组合操作- 三个流组合示例:
val combinedABC = sa.zip3(sb, sc) // 输出结果:Stream((a1,b1,c1), (a2,b2,c2), (a3,b3,c3), ...) - 更多流组合示例(以四个流为例):
val combinedABCD = sa.zip4(sb, sc, sd) // 输出结果:Stream((a1,b1,c1,d1), (a2,b2,c2,d2), ...)
- 三个流组合示例:
注意:如果参与组合的流长度不同,最终生成的流长度等于其中最短的流的长度,超出最短流长度的元素会被自动丢弃。
内容的提问来源于stack exchange,提问作者ruoyu
相关产品推荐
相关产品推荐

