从密钥列表拉动值的列表(pulling the list of values from the li

2019-10-19 03:26发布

我有一个纪录

firstMap = [ name1:[ value1:10, value2:'name1', value3:150, value4:20 ],
             name2:[ value1:10, value2:'name2', value3:150, value4:20 ] ]

我有一个列表,其中的值是1,名称等。

我想拉取决于NAME1作为列表

[ name1:[ value1:10, value2:'name1', value3:150, value4:20 ]

firstMap.subMap(["name1"])没有工作对我来说,但我有一个列表,并通过循环列表我需要拉值

namesList.each{record ->
    newMap = firstmap.subMap(record)
}

我试图子图([报价]),子图([ “要约”]),子图([ “提供?.stringValue()”]),子图([ '报价'])等,但他们没有对工作我。

Answer 1:

当你想在一次抢几个键你根本不需要子图中,这是惟一真正有效的,或者如果您需要在结果的原始密钥

尝试:

firstMap = [ name1:[ value1:10, value2:'name1', value3:150, value4:20 ],
             name2:[ value1:10, value2:'name2', value3:150, value4:20 ] ]

def namesList = [ 'name1', 'name2' ]

namesList.each { name ->
    println firstMap[ name ]
}

或者,如果你需要用原来的查询键映射的结果:

namesList.each { name ->
    println firstMap.subMap( [ name ] )
}

或者实际上:

namesList.each { name ->
    println( [ (name):firstMap[ name ] ] )
}

会给你相同的(即:创建一个键一个新地图name和我的第一个例子中的值)



文章来源: pulling the list of values from the list of keys
标签: map groovy