【发布时间】:2017-01-30 02:07:56
【问题描述】:
我有两张地图,方式如下
def map1 = ['a':1,'b':2]
def map2 = ['a':345,'c':10,'b':1]
我想创建一个结果映射,它看起来基本上与两个映射的键匹配,并将 map1 的值作为键,将 map2 的值作为值本身。输出如下所示:
map3=[1:345,2:1]
【问题讨论】:
我有两张地图,方式如下
def map1 = ['a':1,'b':2]
def map2 = ['a':345,'c':10,'b':1]
我想创建一个结果映射,它看起来基本上与两个映射的键匹配,并将 map1 的值作为键,将 map2 的值作为值本身。输出如下所示:
map3=[1:345,2:1]
【问题讨论】:
你可以通过一个简单的循环轻松做到这一点:
map3 = map1.collectEntries { key, val -> [(val): map2[key]] }
【讨论】:
collectEntries:map1.collectEntries{ k,v -> [v, map2[k]] }
collectEntries 是一个更好的解决方案恕我直言,因为您不需要创建一个空地图然后在循环中对其进行变异,这在当今时代感觉有点脏......
each的时候太累了。