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

Scala中如何纯函数式修改Map的键为不同指定字符串

实现方案

直接在map的转换逻辑中对原键做模式匹配,按规则返回对应的新键值对即可,全程为纯函数操作,不会修改原HashMap,也无需声明任何可变变量。

import scala.collection.immutable.HashMap

// 原HashMap
val originalMap = HashMap(false -> List(20, 15, 20, 17), true -> List(50, 25, 45, 21, 100, 2000, 2100))

// 转换实现
val convertedMap = originalMap.map {
  case (false, list) => "String1" -> list
  case (true, list) => "String2" -> list
}

如果需要适配更多键的转换规则,也可以预先定义不可变的键映射表来简化逻辑:

val keyMapper = Map(false -> "String1", true -> "String2")
val convertedMap = originalMap.map(entry => keyMapper(entry._1) -> entry._2)

如果原Map可能存在规则外的键,可以增加兜底匹配分支避免抛出匹配错误:

val convertedMap = originalMap.map {
  case (false, list) => "String1" -> list
  case (true, list) => "String2" -> list
  case (unknownKey, list) => s"unknown_$unknownKey" -> list
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:06:01