gpt4 book ai didi

list - Groovy 在迭代 map 时修改 map 元素

转载 作者:行者123 更新时间:2023-12-02 06:33:31 24 4
gpt4 key购买 nike

我需要在迭代 map 时修改 map 元素,在我的情况下减去一些元素(列表)。像这样:

def a = [
1: [1, 2, 3],
2: [3, 2, 4],
3: [3, 2, 4],
4: [5, 2, 1],
]
def b = [3]
println a
a.values().each{ tr ->
tr = tr - b
}
println a
a map 没有改变。结果是:
[1:[1, 2, 3], 2:[3, 2, 4], 3:[5, 3, 1], 4:[5, 2, 1]]
[1:[1, 2, 3], 2:[3, 2, 4], 3:[5, 3, 1], 4:[5, 2, 1]]

但是,我希望结果是 [1:[1, 2], 2:[2, 4], 3:[5, 1], 4:[5, 2, 1]] .我做错了什么?由于初始 map ​​相当大,我不想构建另一个元素较少的 map (结果 map )。

最佳答案

直接在 map 上工作:

a.keySet().each{
a[it]-=b
}

在您的代码中,您将结果分配给局部变量。

如果您担心更改的数量,您可以考虑使用 removeAll()或者通过迭代 bremove()每一个。那些改变了列表。

关于list - Groovy 在迭代 map 时修改 map 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354975/

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