如何在Scala中使用过滤器搜索Map并更新值



我有地图colValues: Map[Int, String],数据将是:

(15043 -> "226", 15044 -> "NA", 15045 -> "36", 15046 -> "0", 15047 -> "47", 15048 -> "NA")

我想用";NA";至";0";对于colValues,我们不需要其他变量。换句话说,处理后的colValues将是:

(15043 -> "226", 15044 -> "0", 15045 -> "36", 15046 -> "0", 15047 -> "47", 15048 -> "0")

您只需要一个map

colValues.map { case (a, b) => if (b == "NA") a -> "0" else a -> b }

您可以使用mapValues:执行此操作

colValues.view.mapValues(v => if (v == "NA") "0" else v).toMap

更可能的情况是,您希望转换为Map[String, Int]。一种方法是

colValues.view.mapValues(_.toIntOption.getOrElse(0)).toMap

最新更新