что эквивалентно функции Map.compute в scala.collection.mutable.Map - PullRequest
0 голосов
/ 28 июня 2018

В Java есть метод в java.util.Map, называемый compute, который предоставляет способ обновить карту, когда ключ присутствует или отсутствует на карте.

Предоставляет ли scala.collection.mutable.Map аналогичную функцию?

Я проверил документацию Карта и HashMap , но не смог найти эквивалентные.

Ответы [ 2 ]

0 голосов
/ 18 августа 2018

В mutable.MapLike определена черта getOrElseUpdate, которая делает именно то, что вы хотите:

def getOrElseUpdate(key: K, op: ⇒ V): V

Если данный ключ уже находится на этой карте, возвращает соответствующее значение. В противном случае вычисляет значение из данного выражения op, сохраняет с ключом в карте и возвращает это значение.

0 голосов
/ 28 июня 2018

вы можете использовать update и getOrElse как в

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)
...