The problem here is that you're trying to add the lower-cased keys to the mutable Map
, which is just going to pile additional keys into it. It would be better to just use a strict map
here, rather than a side-effecting function.
val data = scala.collection.mutable.Map[String, String]("A" -> "1", "Bb" -> "aaa")
val newData = data.map { case (key, value) => key.toLowerCase -> value }
If you really want to do it in a mutable way, then you have to remove the old keys.
data.foreach { case (key, value) =>
data -= key
data += key.toLowerCase -> value
}
scala> data
res79: scala.collection.mutable.Map[String,String] = Map(bb -> aaa, a -> 1)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…