Scala:使用集合作为值向Map添加元素的最佳方法是什么?

时间:2016-11-16 23:26:51

标签: scala dictionary

让我们考虑一下:

val m: Map[String, List[String]] = Map ( "foo" -> List("one", "two", "three"))

如何将m的值添加到("foo" -> "four")以获取Map ( "foo" -> List("one", "two", "three", "four"))

2 个答案:

答案 0 :(得分:4)

这是一个简单的方法:

m + ("foo" -> (m("foo") :+"four"))

评论中建议的更安全的方法是在您尝试访问getOrElse时使用m("foo")

m + ("foo" -> (m.getOrElse("foo", Nil) :+ "four"))

答案 1 :(得分:3)

不是答案,但在scalaz中存在一些类似的半群操作:

import scalaz._
import Scalaz._

Map ("foo" -> List("one", "two", "three")) |+| Map("foo" -> List("four"))