Groovy - объединение списка карт в одну карту - PullRequest
0 голосов
/ 09 июня 2018

У меня есть список карт, которые я пытаюсь объединить в одну карту.Я пытался использовать map.collectEntries() для этого, но созданная карта содержала только последнюю карту из списка.Мой список ввода следующий:

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

Я рассчитываю рассчитать карту как:

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

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Вы должны собрать записи с карты с закрытием, которые имеют имя и возраст

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

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

println(nameAgeMap)
0 голосов
/ 09 июня 2018

Для простоты:

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

Stream API:

Вы можете сделать то же самое с помощью потокового API, который может искатьмногие разработчики слишком сложны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...