Some("value1"), "key2" -> None, "key3" -> Some("value3")) 我想删除所有 None 元素并展平-6ren">
gpt4 book ai didi

Scala:从 map 中删除任何元素并展平

转载 作者:行者123 更新时间:2023-12-03 04:34:23 24 4
gpt4 key购买 nike

我有一张 map :

Map("key1" -> Some("value1"), "key2" -> None, "key3" -> Some("value3"))

我想删除所有 None 元素并展平 map 。实现这一目标的最简单方法是什么?我只找到了这个方法:

Map("key1" -> Some("value1"), "key2" -> None, "key3" -> Some("value3")).filter(_._2.nonEmpty).map(item => (item._1 -> item._2.getOrElse(Nil)))

结果是:

Map(key1 -> value1, key3 -> value3)

你知道更好的方法吗?

最佳答案

我对模式匹配的看法是:

Map("key1" -> Some("value1"), "key2" -> None, "key3" -> Some("value3")).collect {
case (key, Some(value)) => key -> value
}
// Map(key1 -> value1, key3 -> value3)

收集行为类似于组合 map +过滤器

关于Scala:从 map 中删除任何元素并展平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17186057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com