如何在映射中将字符串转换为 Seq[String] [英] How to convert a String to a Seq[String] in a Map
本文介绍了如何在映射中将字符串转换为 Seq[String]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 Map[String,String]
和一个需要 Map[String,Seq[String]]
的第三方函数有没有一种简单的方法可以转换它,以便我可以将地图传递给函数?
I have a Map[String,String]
and a third party function that requires a Map[String,Seq[String]]
Is there an easy way to convert this so I can pass the map to the function?
推荐答案
original.mapValues(Seq(_))
请注意,mapValues
返回一个地图视图,因此每次访问元素时都会重新计算函数 (Seq(_)
).为了避免这种情况,只需使用普通的 map
:
Note that mapValues
returns a map view, so the function (Seq(_)
) will be recomputed every time an element is accessed. To avoid this, just use normal map
:
original.map{ case (k,v) => (k, Seq(v)) }
用法:
scala> val original = Map("a" -> "b", "c" -> "d")
original: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(a -> b, c -> d)
scala> original.mapValues(Seq(_))
res1: scala.collection.immutable.Map[java.lang.String,Seq[java.lang.String]] = Map(a -> List(b), c -> List(d))
这篇关于如何在映射中将字符串转换为 Seq[String]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文