我有一個簡單的問題階轉換表映射
我名單地圖像這樣的
List(
Map("a" -> "a"),
Map("b" -> "b")
)
而且我想要的結果是這樣
Map(
"a"->"a",
"b"->"b"
)
它可以是覆蓋,如果鑰匙是重複 任何人請幫助我
我有一個簡單的問題階轉換表映射
我名單地圖像這樣的
List(
Map("a" -> "a"),
Map("b" -> "b")
)
而且我想要的結果是這樣
Map(
"a"->"a",
"b"->"b"
)
它可以是覆蓋,如果鑰匙是重複 任何人請幫助我
你可以結合flatten
和toMap
:
val list = List(Map("k1" -> "v1", "k2" -> "v2"))
list.flatten.toMap // Map(k1 -> v1, k2 -> v2)
flatten
將映射列表轉換成一個元組的列表,然後將toMap
你的元組的列表轉換成地圖。
您可以嘗試使用減少:
scala> val list = List(Map("k1" -> "v1", "k2" -> "v2"))
list: List[scala.collection.immutable.Map[String,String]] = List(Map(k1 -> v1, k2 -> v2))
scala> list.reduce(_ ++ _)
res0: scala.collection.immutable.Map[String,String] = Map(k1 -> v1, k2 -> v2)
scala> val list = List(Map("k1" -> "v1"), Map("k2" -> "v2"))
list: List[scala.collection.immutable.Map[String,String]] = List(Map(k1 -> v1), Map(k2 -> v2))
scala> list.reduce(_ ++ _)
res1: scala.collection.immutable.Map[String,String] = Map(k1 -> v1, k2 -> v2)
這樣,你不需要轉換爲任何中間數據類型。
感謝您的回答 – Muhunthan
你確定嗎?只要確保至少該鍵在所有映射中都具有相同類型 - 例如,您必須只有Map [String,String]實例。 –
否則確實不會編譯。 –
對不起很適合 – Muhunthan