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

Scala中如何筛选Map中键名包含后缀001的键并获取对应值

实现方案

你可以通过Scala集合的filter方法结合字符串匹配逻辑快速完成筛选:

单个Map筛选

针对单个Map,直接判断键是否以001为后缀即可:

val testMap = Map(
  "Y1A0001_001" -> "CU", 
  "Y1D0003" -> "A011", 
  "Y1C0002" -> "20211030", 
  "Y1D0000" -> "four", 
  "Y1D0002" -> "Today only", 
  "Y1C0001" -> "123123", 
  "Y1B0003" -> "005", 
  "Y1D0001" -> "CitizenID", 
  "Y1C0000" -> "Customer"
)
// 筛选得到符合要求的键值对
val resultKV = testMap.filter { case (key, _) => key.endsWith("001") }
// 仅提取符合要求的值
val resultValues = resultKV.values.toList

执行后resultKV输出为Map(Y1A0001_001 -> CU, Y1C0001 -> 123123, Y1D0001 -> CitizenID),完全匹配需求。

多个Map批量处理

如果需要批量处理一批Map,在外层套遍历即可:

val mapList = List(
  Map("Y1A0001_001" -> "CU", "Y1D0003" -> "A011", "Y1C0002" -> "20211030", "Y1D0000" -> "four", "Y1D0002" -> "Today only", "Y1C0001" -> "123123", "Y1B0003" -> "005", "Y1D0001" -> "CitizenID", "Y1C0000" -> "Customer"),
  Map("Y1A0001_001" -> "CU", "Y1D0003" -> "A011", "Y1C0002" -> "20210928", "Y1D0000" -> "five", "Y1D0002" -> "Today only", "Y1C0001" -> "133213", "Y1B0003" -> "006", "Y1D0001" -> "Drive License", "Y1C0000" -> "Director"),
  Map("Y1A0001_001" -> "CU", "Y1D0003" -> "A011", "Y1C0002" -> "20210927", "Y1D0000" -> "six", "Y1D0002" -> "Both", "Y1C0001" -> "452234324", "Y1B0003" -> "007", "Y1D0001" -> "CitizenID", "Y1C0000" -> "Messenger")
)
// 逐个筛选每个Map的符合项
val allResult = mapList.map(_.filter { case (key, _) => key.endsWith("001") })

如果你需要的是筛选键任意位置包含001而非仅后缀,把endsWith("001")替换为contains("001")即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:00:02