加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:02:44 所属栏目:安全 来源:网络整理
导读:如果我正在使用 Scala Multimap,并且我想获取与键相关联的值或者是空集,我是否必须编写以下内容? multimap.getOrElse("key",new collection.mutable.HashSet()) 似乎以下情况应该起作用.空集似乎是一个很好的默认值. multimap.getOrElse("key") 解决方法 正
如果我正在使用 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的类型是抽象集合,则上述情况不起作用.源代码中的评论说这是由于差异问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读