You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过给定的两个Scala序列生成目标序列?

Scala序列元素全组合拼接实现方案

要实现将seq1中每个元素与seq2所有元素拼接,并按seq1元素顺序依次生成目标序列,有两种常用的简洁实现方式:

方法一:使用flatMap + map组合

通过flatMap遍历seq1的每个元素,再对seq2的每个元素执行拼接操作,最后将所有子序列扁平化为一个完整序列:

val seq1 = Seq("A","B","C")
val seq2 = Seq(1,2,3)
val result = seq1.flatMap(char => seq2.map(num => s"$char$num"))

flatMap的作用是将每个字符对应的拼接结果序列(比如Seq("A1","A2","A3"))合并成一个大序列,完全符合目标顺序要求。

方法二:使用for推导式

Scala的for推导式是flatMap和map的语法糖,写法更直观易读:

val seq1 = Seq("A","B","C")
val seq2 = Seq(1,2,3)
val result = for {
  char <- seq1
  num <- seq2
} yield s"$char$num"

先遍历seq1的每个字符,再遍历seq2的每个数字,每次拼接后将结果收集到最终序列中,输出结果与方法一完全一致。

两种方法执行后,result都会得到目标序列:Seq("A1","A2","A3","B1", "B2", "B3", "C1", "C2", "C3")

内容的提问来源于stack exchange,提问作者Lokesh G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:50:39