2016-04-29 103 views
0

在scala中是否有一种奇妙的方式将地图从值类型复制到另一个值类型?复制地图[字符串,列表[MyObject]]复制地图[字符串,列表[字符串]] scala

Input: Map[String, ListBuffer[MyCustomObject]] 
output: Map[String, ListBuffer[String]] 

谢谢。

+2

'myMap.mapValues(_。地图(_。的toString))' –

+0

感谢@让PhilippePellet –

+2

注意'mapValues'包装了原来的地图,而复制它。每次从结果地图中获取值时,都会应用函数“_.map(_。toString)”。 (http://www.scala-lang.org/api/2.11.8/index.html#[email protected][C](f:B=>C):scala.collection.Map[A, C] ) –

回答

1

虽然.mapValues只创建一个原始集合的视图,使用.map给你一个完全独立的新集合。

input.map { case (key, value) => (key, value.map(_.toString)) }