我有一个很棒的地图,如下所示。
image_map = [:]
image_map = [obj_1: ['1','2'], obj_2: ['3','4']]我想遍历每个对象的所有值(对于obj_1,遍历列表值‘1’,'2'),并从该对象运行一个方法。
obj_1.method(1)
obj_1.method(2)
obj_2.method(3)
obj_2.method(4)发布于 2020-06-16 22:06:46
这取决于您为什么要这样做,但您可以获取这些值并将其展平:
image_map.values().flatten().each {
println it
}因此,有了注释中添加的要求,您可以这样做:
image_map.collectMany { k, v -> v.collect { "${k}.method($it)" } }
.each { println it }要打印
obj_1.method(1)
obj_1.method(2)
obj_2.method(3)
obj_2.method(4)使用另一个要求编辑2...假设键是对象(而不是字符串):
def obj_1 = [method: { it -> "I am obj1 $it" }]
def obj_2 = [method: { it -> "I am obj2 $it" }]
image_map = [(obj_1): ['1','2'], (obj_2): ['3','4']]
image_map.collectMany { k, v -> v.collect { [object: k, param: it] } }
.each { println it.object.method(it.param) }打印:
I am obj1 1
I am obj1 2
I am obj2 3
I am obj2 4https://stackoverflow.com/questions/62409274
复制相似问题