Соберите список пар в карту

Как мы можем собрать список списков пар значений в карту, где указанные пары превращаются в key:value записи на карте, как в:

a = [[1,11], [2,22], [3,33]]
b = ...?
assert b == [1:11, 2:22, 3:33]

3 ответа

Решение

Так как collectEntries работает со списком пар, вы можете просто сделать

def b = a.collectEntries()
def b = a.collectEntries {[(it.get(0)): it.get(1)]}

Использование collectEntries, который превращает Iterables (например, списки) в карты:

a = [[1,11], [2,22], [3,33]]
b = a.collectEntries { [ (it.first()) : it.last() ] }
assert b == [1:11, 2:22, 3:33]
Другие вопросы по тегам