我想在给定的地图中找到特定的键。如果找到了密钥,那么我想从地图中获取该密钥的值。groovy:在地图上找到一个键并返回它的值
这是我管理至今:
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likes" }
if(x)
println x.value
这工作,输出的是“奶酪”预期。太棒了,但我不想在最后做x.value
,我不想做if(x)
。我想要x以某种方式直接包含该值。
我不能得到的值直接进入X这样的:
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likesZZZ" }.value
println x
因为发现封在这种情况下空,这导致空指针异常。当然,上面的代码片段在it.key == "likes"
时有效,但我不确定我会在地图中始终找到目标键。
什么是“更巧妙”,安全地做到这一点在地图上的方式:
- 检查如果地图有一个给定的键,
- 如果是的话,得到这个关键 的价值
太棒了。这比我选择的原始答案更为贴切,更符合我的需求。标记这是答案。谢谢。 – noumenon
使用封闭是非常昂贵的。在那里更好地使用'def x = mymap.get(“likes”)?. value',这样效率更高 –