【问题标题】:Create a new map in groovy by taking the values of one map and making it keys of another map通过获取一个映射的值并将其作为另一个映射的键,在 groovy 中创建一个新映射
【发布时间】: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]

【问题讨论】:

    标签: groovy hashmap


    【解决方案1】:

    你可以通过一个简单的循环轻松做到这一点:

    map3 = map1.collectEntries { key, val -> [(val): map2[key]] }
    

    【讨论】:

    • 我会改用collectEntriesmap1.collectEntries{ k,v -> [v, map2[k]] }
    • collectEntries 是一个更好的解决方案恕我直言,因为您不需要创建一个空地图然后在循环中对其进行变异,这在当今时代感觉有点脏......
    • @cfrick 感谢您指出这一点,这绝对是一个更好的选择。用each的时候太累了。
    猜你喜欢
    • 1970-01-01
    • 2011-12-04
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多