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

scala – 将地图[K,选项[V]]转换为地图[K,V]的更好方法

发布时间:2020-12-16 09:38:13 所属栏目:安全 来源:网络整理
导读:我有一些代码生成一个Map,其中值是Option类型,我当然想要一个只包含真实值的地图。 所以我需要转换这个,我在代码中提出了什么 def toMap[K,V](input: Map[K,Option[V]]): Map[K,V] = { var result: Map[K,V] = Map() input.foreach({ s: Tuple2[K,Option[
我有一些代码生成一个Map,其中值是Option类型,我当然想要一个只包含真实值的地图。

所以我需要转换这个,我在代码中提出了什么

def toMap[K,V](input: Map[K,Option[V]]): Map[K,V] = {
    var result: Map[K,V] = Map()
    input.foreach({
      s: Tuple2[K,Option[V]] => {
        s match {
          case (key,Some(value)) => {
            result += ((key,value))
          }
          case _ => {
            // Don't add the None values
          }
        }
      }
    })
    result
  }

这是有效的,但似乎不合适。我怀疑这是内置在我缺少的集合库中的东西。

有没有内置的东西,还是比较惯用的方法呢?

解决方法

input.collect{case (k,Some(v)) => (k,v)}

(编辑:李大同)

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

    推荐文章
      热点阅读