scala - 在遍历 map 时过滤掉键

标签 scala map filter foreach iterator

遍历 map 并过滤掉某些键的最佳方法是什么?伪代码可能类似于

    map.foreach(tuple where !list.contains(tuple._1) => { })

谢谢
布鲁斯

最佳答案

val m = Map(1 -> "a", 2 -> "b", 4 -> "c", 10 -> "d")
val s = Set(1,4)
m.filterKeys { s.contains(_) == false }
// Map(2 -> b, 10 -> d)

但是,如果这是一个巨大的 map 和一个巨大的集合,那么我建议首先对它们进行排序并相互迭代它们,在你去的时候挑选你需要的位。对 contains 的重复调用性能可能不如你所愿,特别是如果你使用 List而不是 Set .

关于scala - 在遍历 map 时过滤掉键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9487117/

相关文章:

scala - Spark rdd 写入 Hbase

java - 如何从 HashMap 中获取最低的浮点值

c# - 来自过滤器代码的音频点击/弹出

vba - 如何在 VBA 中查找多个字符串

python - 提高串式过滤器的效率

scala - 数据流的 SHA256

java - Scala库初始化设计

scala - 函数有什么类型?

map - 获取结构元素的静态类型

list - Haskell - 使用 toUpper 将列表 [String] 中的所有字母大写