我有一张地图,其中另一张地图是Groovy中的值。
示例:
[K1 : [k2:v2]]
现在我希望使用v2
密钥查找K1
,并且必须返回K1
。
我正在使用.each
循环但.each
循环继续运行直到结束,即使我在其间返回K1
。
此外,我将整个地图作为返回值,但我只期望K1
键。
答案 0 :(得分:0)
名称隐含的each
方法总是遍历每个元素,闭包的返回值被忽略,返回值再次是您观察到的完整映射。这是each
的定义行为。
您要使用的是find
方法,它找到符合您标准的第一个条目,然后使用其键。类似的东西:
[K1: [k2: 'v2'], K3: [k4: 'v4']].find { it.value.k2 == 'v2' }.key
答案 1 :(得分:0)
您可以查看:
[K1: [k2: 'v2'], K3: [k4: 'v4']].find {'v2' in it.value.values() }?.key