Scala multimap:获取项目或其他空集

前端之家收集整理的这篇文章主要介绍了Scala multimap:获取项目或其他空集前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我正在使用 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

奇怪的是,如果m的类型是抽象集合,则上述情况不起作用.源代码中的评论说这是由于差异问题.

猜你在找的Scala相关文章