问题描述
我有一个记录
firstMap = [ name1:[ value1:10, value2:'name1', value3:150, value4:20 ],
name2:[ value1:10, value2:'name2', value3:150, value4:20 ] ]
我有一个列表,其值为name1,name2等。
I have a list where the values are name1, name2, etc.
我想根据name1为
[ name1:[ value1:10, value2:'name1', value3:150, value4:20 ]
firstMap.subMap([name1])
,为我工作,但我有一个列表,并循环列出我需要拉值
firstMap.subMap(["name1"])
, did work for me, but I have a list and by looping the list I need to pull the values
namesList.each{record ->
newMap = firstmap.subMap(record)
}
我尝试过subMap ([offer]),subMap([offer]),subMap([offer?.stringValue()]),subMap(['offer'])等等,但是没有一个可以为我工作。 p>
I have tried subMap([offer]), subMap(["offer"]), subMap(["offer?.stringValue()"]), subMap(['offer']), etc. But none of them work for me.
推荐答案
你根本不需要子图,只要你想要一次抓住几个键,或者你需要
You don't need submap at all, that's only really useful when you want to grab a few keys at once or if you need the original key in the result
尝试:
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 ]
}
或者如果您需要一个地图结果使用原始查询键:
Or if you need a Map result with the original query key:
namesList.each { name ->
println firstMap.subMap( [ name ] )
}
或者确实:
namesList.each { name ->
println( [ (name):firstMap[ name ] ] )
}
会给你一样的(即:用钥匙名称
和我的第一个例子的值创建一个新的地图)
Would give you the same (ie: create a new map with the key name
and the value of my first example)
这篇关于从键列表中拉出值列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!