2016-04-01 103 views
0

有人可以帮助我将地图[字符串,列表[字符串]]转换为斯卡拉地图[字符串,字符串] ?Scala将地图[字符串,列表[字符串]]转换为地图[字符串,字符串]

这里是地图[字符串,列表[字符串]]如下:

val pets: Map[String, List[String]] = Map(
    "home" -> List("cat", "dog", "fish"), 
    "farm" -> List("cow", "horse"), 
    "wild" -> List("tiger", "elephant") 
) 

需要被转换为地图[字符串,字符串]如下:

val pets2: Map[String, String] = Map(
    "home" -> "cat", 
    "home" -> "dog", 
    "home" -> "fish", 
    "farm" -> "cow", 
    "farm" -> "horse", 
    "wild" -> "tiger", 
    "wild" -> "elephant" 
) 
+1

你问什么是不可能的。地图不能有重复的键。 – pedrofurla

+0

但是它确实有一个MultiMap –

回答

3

如前所述,Map中的每个密钥都是唯一的。

这就是说,你可以在地图转换成元组序列:

pets.toSeq.flatMap { case (key, list) => list.map(key -> _) } 

会给你:

ArrayBuffer(
    (home,cat), 
    (home,dog), 
    (home,fish), 
    (farm,cow), 
    (farm,horse), 
    (wild,tiger), 
    (wild,elephant) 
) 
相关问题