在Scala中使用不可变的HashMap

Ala*_*ano 4 scala hashmap

我有一个不可变的HashMap,并希望从中添加/删除值.在Scala的API文档说,我必须使用+=和-=方法,但他们没有工作,我得到以下错误:

error: value += is not a member of scala.collection.immutable.HashMap
Run Code Online (Sandbox Code Playgroud)

如何在Scala中添加或删除HashMap中的值?

4le*_*x1v 5

您正在观看mutableHashMap的api,将对添加到不可变的HashMap使用+

hashMap + ("key", "value") 
Run Code Online (Sandbox Code Playgroud)

或者如果你想删除使用 -

hashMap - "key"
Run Code Online (Sandbox Code Playgroud)

但你应该记住它会创建一个新的结构

至于+=方法,我认为这种设计并不好,因为在这种情况下你必须使用var而不是val,这不是一种功能性的方式

  • @MariusKavansky`hashMap ++ Seq("foo" - >"bar","bar" - >"baz")` (3认同)