You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据指定Seq[String]过滤Scala中Seq[Map[String,String]]的键值对

实现代码

首先将允许的键列表转为Set,将键存在性查询的时间复杂度从O(n)优化到O(1),再遍历val1中的每个Map做键过滤即可:

val allowedKeys = val2.toSet
val result = val1.map(_.filter { case (key, _) => allowedKeys.contains(key) })

运行后得到的result和预期输出完全一致:

val expected = Seq(Map("Name" -> "Heidi", "City" -> "Paris"), Map( "Country" -> "France"), Map("City" -> "Paris"))

如果使用Scala 2.13及以上版本,也可以用更简洁的filterKeys写法:

val result = val1.map(_.filterKeys(allowedKeys).toMap)

内容的提问来源于stack exchange,提问作者Didi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:24:04