Dictionary Groovy—将映射列表合并到单个映射中

Dictionary Groovy—将映射列表合并到单个映射中,dictionary,groovy,Dictionary,Groovy,我有一个地图列表,我正试图将其合并成一个地图。我尝试使用map.collectEntries来执行此操作,但创建的映射只包含列表中的最后一个映射。我的输入列表如下: def people = [[name:'John', age:35], [name:'Jim', age:54]] 我希望计算一张地图,如: def people = ['John':35, 'Jim':54] 为简单起见: 流API: 您可以使用stream API执行同样的操作,这可能会让许多开发人员感到过于复杂。您必须使

我有一个地图列表,我正试图将其合并成一个地图。我尝试使用map.collectEntries来执行此操作,但创建的映射只包含列表中的最后一个映射。我的输入列表如下:

def people = [[name:'John', age:35], [name:'Jim', age:54]]
我希望计算一张地图,如:

def people = ['John':35, 'Jim':54]
为简单起见:

流API:


您可以使用stream API执行同样的操作,这可能会让许多开发人员感到过于复杂。

您必须使用访问名称和年龄的闭包从映射中收集条目

def people = [[name:'John', age:35], [name:'Jim', age:54], [name:'Smith', age:'53']]

def nameAgeMap=people.collectEntries() {
    [it.name, it.age]
}

println(nameAgeMap)

生成的映射应该是什么样子?我已经更新了我的问题,以显示生成的映射应该是什么样子。我对Groovy不是很熟悉,但在Java中,您可以执行类似于people.stream.collecttoMapm->m.getname,m->m.getage的操作。谢谢您的回答,我使用Groovy控制台进行了测试,得到的映射只包含一个包含单个键/值对的映射-[name:'Jim',age:54]与collectEntries相比,Groovy开发人员看起来也过于复杂了;P@cfrick你看到原来的问题了吗?自从我回答这个问题以来,情况发生了很大的变化。最初的问题不是Groovy风格,而是90%纯Java风格。有列表,数字用字符串表示,等等。现在的期望也不同了。
def people = [[name:'John', age:35], [name:'Jim', age:54], [name:'Smith', age:'53']]

def nameAgeMap=people.collectEntries() {
    [it.name, it.age]
}

println(nameAgeMap)