"val1", -6ren">
gpt4 book ai didi

list - 如何在 Scala 中通过预处理将列表转换为可变映射?

转载 作者:行者123 更新时间:2023-12-03 23:49:32 26 4
gpt4 key购买 nike

我有一个列表(列表的大小是可变的):

val ids = List(7, 8, 9)

并希望获得以下 map :
val result= Map("foo:7:bar" -> "val1",
"foo:8:bar" -> "val1",
"foo:9:bar" -> "val1")

map 中的所有内容都是硬编码的,除了 id 和值对每个人都相同,但 map 必须是可变的,我想稍后更新其值之一:
result("foo:8:bar") = "val2"
val result= Map("foo:7:bar" -> "val1",
"foo:8:bar" -> "val2",
"foo:9:bar" -> "val1")

最佳答案

您可以这样做:首先映射列表以生成元组列表,然后调用 toMap结果是不可变的 Map出元组:

val m = ids.map(id => ("foo:" + id + ":bar", "val1")).toMap

然后转换不可变 Map到可变 Map ,例如像解释 here :
val mm = collection.mutable.Map(m.toSeq: _*)

编辑 - 中间不可变 Map正如评论者所注意到的,没有必要,您也可以这样做:
val mm = collection.mutable.Map(ids.map(id => ("foo:" + id + ":bar", "val1")): _*)

关于list - 如何在 Scala 中通过预处理将列表转换为可变映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33096821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com