如何在映射中将字符串转换为 Seq[String] [英] How to convert a String to a Seq[String] in a Map

查看:37
本文介绍了如何在映射中将字符串转换为 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆