在scala.collection.mutable.Map中Map.compute的等效功能是什么

Raj*_*jan 5 scala scala-collections

Java在java.util.Map中具有调用的方法,compute该方法提供了一种在地图中存在或不存在键时更新地图的方法。

scala.collection.mutable.Map是否提供任何类似的功能?

我检查了MapHashMap文档,但找不到等效的文档。

Arn*_*-Oz 4

你可以使用updateandgetOrElse

val x= scala.collection.mutable.Map("a"->1,"b"->2)
x.update("c",x.getOrElse("c",1)+41)
x.update("a",x.getOrElse("a",1)+41)
Run Code Online (Sandbox Code Playgroud)

  • 上面的内容真的是原子的吗?最初的问题是指“compute”,它保证了原子性。这里我们有 `x.update("v",x.getOrElse("c", 1))`,它显然不是原子的。 (2认同)