У меня есть List<Map<Branch,Pair<String, Any>>>
, который я хотел бы преобразовать в один Map<Branch,List<Pair<String, Any>>>
.
Так что, если у меня есть начальный список с двумя элементами:
Список
1. branch1 -> Pair(key1,value1)
branch2 -> Pair(key2,value2)
2. branch1 -> Pair(key1a,value1a)
Я хочу закончить с:
Map
branch1 -> Pair(key1,value1)
Pair(key1a,value1a)
branch2 -> Pair(key2,value2)
так что это своего рода groupBy, использующий все значения ключей в изначально вложенных картах ..
Я пробовал с
list.groupBy{it-> it.keys.first()}
, но, очевидно, он не работает, так как использует только первый ключ.Я хочу то же самое, но используя все ключи как отдельные значения.
Какой самый идиоматичный способ сделать это в Котлине?У меня есть ужасно выглядящая рабочая версия на Java, но я вполне уверен, что у Kotlin есть хороший способ сделать это ... просто я пока не нахожу ее!
Есть идеи?
Спасибо