Bernhard
03/05/2025, 8:05 AMval increaseSkills: List<Map<KingdomSkill, Set<KingdomSkill>>> = emptyList()
val groupedSkills = mutableMapOf<KingdomSkill, Set<KingdomSkill>>()
increaseSkills.forEach { map ->
map.forEach { (skill, skills) ->
groupedSkills.put(skill, (groupedSkills[skill] ?: emptySet()) + skills)
}
}
Wout Werkman
03/05/2025, 8:07 AM.flatMap { it.entries }.toMap()
?Bernhard
03/05/2025, 8:08 AMBernhard
03/05/2025, 8:08 AMBernhard
03/05/2025, 8:08 AMBernhard
03/05/2025, 8:08 AMSam
03/05/2025, 8:11 AMincreaseSkills
.flatMap { it.entries }
.groupBy({ it.key }, { it.value })
.mapValues { it.value.flatten().toSet() }
Sam
03/05/2025, 8:11 AMBernhard
03/05/2025, 8:12 AMBernhard
03/05/2025, 8:13 AMMichael Krussel
03/05/2025, 12:57 PMbuildMap
instead of declaring a mutableMap.
And I find this a little cleaner groupedSkills[skill].orEmpty() + skills
than (groupedSkills[skill] ?: emptySet()) + skills
But both of those are really just preferences.Bernhard
03/05/2025, 12:58 PMBernhard
03/05/2025, 1:02 PMmichaelsims
03/05/2025, 3:00 PMincreaseSkills.reduce() { acc, map -> map + acc.mapValues { (k, v) -> v + map[k].orEmpty() } }
Bernhard
03/05/2025, 3:00 PMmichaelsims
03/05/2025, 3:00 PMBernhard
03/05/2025, 3:01 PMBernhard
03/05/2025, 3:07 PMmichaelsims
03/05/2025, 3:08 PMBernhard
03/05/2025, 3:08 PMmichaelsims
03/05/2025, 3:09 PMmichaelsims
03/05/2025, 3:09 PMBernhard
03/05/2025, 3:09 PMBernhard
03/05/2025, 3:09 PMBernhard
03/05/2025, 3:10 PMmichaelsims
03/05/2025, 3:14 PMincreaseSkills.reduce() { acc, map -> map + acc.mapValues { (k, v) -> v + map[k].orEmpty() } }
Bernhard
03/05/2025, 3:17 PM