Groovy 基于第二个列表从列表中提取字段

Groovy 基于第二个列表从列表中提取字段,groovy,Groovy,我有以下清单: list1 = [["value1":"name1", "value2":"check1"], ["value1":"name2", "value2":" check2"], ["value1":"name3", "value2":" check3"]] list2 = ['name1', 'name2'] 我想为name1和name2提取所有“value2”的列表。 作为: 这应该做到: def list3 = list1.findAll { it.value1 in

我有以下清单:

list1 = [["value1":"name1", "value2":"check1"], ["value1":"name2", "value2":" check2"],  
["value1":"name3", "value2":" check3"]]  
list2 = ['name1', 'name2']
我想为
name1
name2
提取所有
“value2”的列表。
作为:

这应该做到:

def list3 = list1.findAll { it.value1 in list2 }.value2

我不确定groovy,但在任何语言中,带有
if
语句的
for
循环都可以工作。你试过了吗?因为我有大量的记录(数十万条),所以我试图找到一些不会影响性能的东西。感谢您的回复我只想提取第二个列表中的值,而不是整个列表中的值
def list1 = [["value1":"name1", "value2":"check1"], ["value1":"name2", "value2":" check2"],

["value1":"name3", "value2":" check3"]]

def list2 =list1.collect{it."value2"}
def list3 = list1.findAll { it.value1 in list2 }.value2