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

如何在Kotlin中通过键的前缀从Map中获取对应值

Kotlin中按键前缀从Map取值的优化方法

已知每个前缀在Map中仅出现一次且必存在,这里给你几种比遍历键列表更简洁高效的实现方式:

  • 使用find直接匹配键(推荐,短路遍历更高效)
    find会在找到第一个符合条件的键值对后立即停止遍历,比遍历整个Map的filterKeys更节省性能:
map.entries.find { it.key.startsWith("bbb") }!!.value

如果想保留空安全处理(哪怕题目说必存在),可以用:

map.entries.find { it.key.startsWith("bbb") }?.value ?: error("未找到匹配前缀的键")
  • 优化你现有的实现
    你的代码可以简化,不需要转List再提取值,直接取过滤后Map的values集合的第一个元素:
map.filterKeys { it.startsWith("bbb") }.values.first()
  • 使用firstNotNullOf(Kotlin 1.4及以上版本适用)
    这个函数会遍历Map的键值对,返回第一个符合条件的非空值,写法更紧凑:
map.firstNotNullOf { (key, value) -> value.takeIf { key.startsWith("bbb") } }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 09:40:42