Groovy - 将地图列表合并到一个地图中

时间:2018-06-08 22:54:49

标签: dictionary groovy

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

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

我希望计算出如下地图:

def people = ['John':35, 'Jim':54]

2 个答案:

答案 0 :(得分:3)

您必须从地图中收集带有访问名称和年龄

的闭包的条目
def people = [[name:'John', age:35], [name:'Jim', age:54], [name:'Smith', age:'53']]

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

println(nameAgeMap)

答案 1 :(得分:0)

为简单起见:

Map<String, String> result = new HashMap<String, String>();
for (Map<String, String> singleMap : people) {
  result.putAll(singleMap);
}

Stream API:

您可以使用流API执行相同操作,这可能会导致许多开发人员过于复杂。