[英]Convert a Map[String, String] to Map[String, Int] in Scala
我有一個Map,其中鍵是一個String,值是一個Int,但表示為一個String。
scala> val m = Map( "a" -> "1", "b" -> "2", "c" -> "3" )
m: scala.collection.immutable.Map[String,String] = Map(a -> 1, b -> 2, c -> 3)
現在我想將其轉換為Map[String, Int]
scala> m.mapValues(_.toInt)
res0: scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2, c -> 3)
如Brian的回答所示, mapValues
是執行此操作的最佳方式。
您可以使用模式匹配實現相同的效果,如下所示:
m.map{ case (k, v) => (k, v.toInt)}
並且在其他情況下很有用(例如,如果您還想更改密鑰)。
請記住,您對Map
中的每個條目進行模式匹配,表示為tuple2,而不是整個Map
。
你還必須在case
語句周圍使用花括號{}
來保持編譯器的快樂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.