Scala将映射[String,List[String]]转换为映射[String,String]
有人能帮我在scala中将Map[String,List[String]]转换成Map[String,String]吗 下面是映射[String,List[String]],如下所示:Scala将映射[String,List[String]]转换为映射[String,String],list,scala,dictionary,collections,List,Scala,Dictionary,Collections,有人能帮我在scala中将Map[String,List[String]]转换成Map[String,String]吗 下面是映射[String,List[String]],如下所示: val pets: Map[String, List[String]] = Map( "home" -> List("cat", "dog", "fish"), "farm" -> List("cow", "horse"), "wild" -> List("tiger"
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"
)
需要转换为Map[String,String],如下所示:
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"
)
地图不能有重复的键。地图不能有重复的键。如前所述,
地图中的每个键都是唯一的
也就是说,您可以将映射转换为元组序列:
pets.toSeq.flatMap { case (key, list) => list.map(key -> _) }
将为您提供:
ArrayBuffer(
(home,cat),
(home,dog),
(home,fish),
(farm,cow),
(farm,horse),
(wild,tiger),
(wild,elephant)
)
如前所述,地图中的每个键都是唯一的
也就是说,您可以将映射转换为元组序列:
pets.toSeq.flatMap { case (key, list) => list.map(key -> _) }
将为您提供:
ArrayBuffer(
(home,cat),
(home,dog),
(home,fish),
(farm,cow),
(farm,horse),
(wild,tiger),
(wild,elephant)
)
你所要求的是不可能的。地图不能有重复的关键点。但它有一个多重地图。你所要求的是不可能的。地图不能有重复的关键点。但它有一个多重地图