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