要将Map [K,Option V]转换为Map K,V,并丢弃Nones,可以使用Scala中的collect
和flatten
方法。以下是一个示例代码:
val mapWithOptionValues: Map[K, Option[V]] = // ...
val mapWithValues: Map[K, V] = mapWithOptionValues
.collect { case (k, Some(v)) => (k, v) }
.toMap
在这个示例中,我们首先使用collect
方法遍历mapWithOptionValues
中的所有键值对。collect
方法接受一个函数作为参数,该函数将键值对作为参数,并返回一个Option
。在这里,我们将每个键值对转换为一个Option
,如果值是Some(v)
,则返回一个包含键值对的Option
,否则返回None
。
然后,我们使用flatten
方法将Option
中的值提取出来,并将结果转换为Map[K, V]
。
这样,我们就成功地将Map [K,Option V]转换为Map K,V,并丢弃了Nones。
领取专属 10元无门槛券
手把手带您无忧上云