簡體   English   中英

在Scala中將Map [String,String]轉換為Map [String,Int]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM