【发布时间】:2016-10-09 20:55:06
【问题描述】:
鉴于以下情况:
val t: List[Map[String, Map[String, Int]]] = List(
Map("a" -> Map("m" -> 1, "l" -> 21)),
Map("a" -> Map("m" -> 2, "l" -> 22)),
Map("a" -> Map("m" -> 3, "l" -> 23)),
Map("a" -> Map("m" -> 4, "l" -> 24))
)
我想要结果:
Map(1->21,2->22,3->23,4->24)
到目前为止我所拥有的是:
val tt = (for {
(k,v) <- t
newKey = v("m")
newVal = v("l")
} yield Map(newKey -> newVal)).flatten.toMap
但这并没有类型检查,所以我缺少一些基本的理解,因为我不明白为什么不呢?
我的问题是:
- 为什么我的代码有问题?
- 进行我想要的转换最惯用的方法是什么?
【问题讨论】:
标签: scala