如果我正在使用
Scala Multimap,并且我想获取与键相关联的值或者是空集,我是否必须编写以下内容?
multimap.getOrElse("key",new collection.mutable.HashSet())
似乎以下情况应该起作用.空集似乎是一个很好的默认值.
multimap.getOrElse("key")
解决方法
正如您所观察到的,MultiMap特性并不能满足您的需求.但是,如果Map是特定可变的或不可变的,您可以自己添加默认值.这是一个例子,
scala> val m = collection.mutable.Map(1 -> 2) m: scala.collection.mutable.Map[Int,Int] = Map(1 -> 2) scala> val m2 = m.withDefaultValue(42) m2: scala.collection.mutable.Map[Int,Int] = Map(1 -> 2) scala> m2(1) res0: Int = 2 scala> m2(2) res1: Int = 42