如何在Groovy中按嵌套映射的值查找映射键

时间:2017-06-28 07:52:19

标签: groovy

我有一张地图,其中另一张地图是Groovy中的值。

示例:

[K1 : [k2:v2]]

现在我希望使用v2密钥查找K1,并且必须返回K1

我正在使用.each循环但.each循环继续运行直到结束,即使我在其间返回K1

此外,我将整个地图作为返回值,但我只期望K1键。

2 个答案:

答案 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