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

如何在Scala中使用flatMap将Map展平为键值对序列?

使用Scala的flatMap展开Map为键值对序列

首先修正你给出的Map构造代码(原写法中值是元组而非Seq,会导致类型不匹配):

val map = Map("A" -> Seq("1", "2", "3", "4"), "B" -> Seq("2", "3"), "C" -> Seq("3", "4"))

要通过flatMap实现将每个键与对应序列中的元素逐一配对,生成目标序列,可以这样写:

val result = map.flatMap { case (key, values) =>
  values.map(value => (key, value))
}

代码说明:

  • flatMap会遍历Map中的每一组键值对,接收一个处理函数。
  • 模式匹配case (key, values)解构出当前的键和对应的元素序列。
  • 对每个values序列,用map将其中的每个元素转换为(key, value)形式的元组,生成一个临时的小序列。
  • flatMap会自动把所有临时小序列"扁平化"合并成一个大的序列,最终得到你需要的结果。

执行后result的输出为:

List((A,1), (A,2), (A,3), (A,4), (B,2), (B,3), (C,3), (C,4))

注:你给出的期望输出中("B", "2")重复了一次,这应该是笔误,上述代码不会产生重复项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:35:42