如何从Scala中的地图列表中获取逗号分隔值?

时间:2016-11-28 16:00:34

标签: scala scala-collections

我有List [Map [String,String]]类型的listMap1变量,我想要所有与key' k1'相关联的值。作为一个逗号分隔值的字符串

import fiddle.Fiddle, Fiddle.println
import scalajs.js

@js.annotation.JSExport
object ScalaFiddle {

  var m1:Map[String,String] = Map(("k1"->"v1"), ("k2"->"vv1")) 
  var m2:Map[String,String] = Map(("k1"->"v2"),("k2"->"vv2"))
  var m3:Map[String,String] = Map(("k1"->"v3"),("k2"->"vv3"))

  var listMap1 = List(m1,m2,m3)
  var valList = ??  // need all values assoicated with k1 like -->  v1,v2,v3...
}

2 个答案:

答案 0 :(得分:7)

一个简单的方法是:

listMap1.flatMap(_.get("k1")).mkString(",")

如果您要生成CSV数据并且关联的值包含,,则会发出警告,这将无效。 Map(("k1" -> "\some, string"))

答案 1 :(得分:1)

那可以吗?

  val r = listMap1.filter(l => l.contains("k1") ).map(r => r("k1") ).mkString(",")