Algorithm 地图中更新值的快速方法

Algorithm 地图中更新值的快速方法,algorithm,scala,Algorithm,Scala,我有这样的地图结构: val map = mutable.Map[String, Double].empty 然后像这样给我的地图增加价值 map("apple") = 10.34 但对于苹果的下一个价值,我想增加到10.34,所以我这样做了 val oldVal = map("apple") map("apple) = oldVal + 2.34 有没有更快捷的方法?因为我必须阅读大文件,我想快速更新地图。谢谢您的建议。使用Scala时,通常最好避免使用可变对象。这是为了避免任何在Sca

我有这样的地图结构:

val map = mutable.Map[String, Double].empty
然后像这样给我的地图增加价值

map("apple") = 10.34
但对于苹果的下一个价值,我想增加到10.34,所以我这样做了

val oldVal = map("apple")
map("apple) = oldVal + 2.34

有没有更快捷的方法?因为我必须阅读大文件,我想快速更新地图。谢谢您的建议。

使用Scala时,通常最好避免使用可变对象。这是为了避免任何在Scala中相当简单的并发问题

如果我正确理解了您的问题,那么您有一个要使用值更新的映射。从文件读取时,您可以创建一个新地图,其中包含要添加的值:

val m = Map("a" -> 1, "b" -> 2)
val other = Map("a" -> 3, "c" -> 4) // created from a file
现在,您可以使用第二个贴图中的值更新第一个贴图,以获得以下结果:

val updated = m.map{ case (k, v) => { if(other.contains(k)) {(k, v + other.get(k).get)} else (k,v) }}
现在,您可以使用更新来执行其他操作。

就地。。。mapapple+=2.43
    val map = mutable.Map.empty[String, Double].withDefaultValue(0.0)

    //put new
    map("apple") = 10.34

    //update existing
    map("apple") += 2.34

    //update not existing
    map("orange") += 0.34