Issue
I have following CSV
US;Americas
CA;Americas
FR;Europe
CH;Asia
...
I want to have Map of -> String, List, is it possible to achieve this via associate, or something else ?
So far I have this:
csv.split("\n").associate {
val (code, region) = it.split(";")
region to code
}
but this is just mapping the region to only one code, also tried
region to listOf(code)
expected result:
Americas -> US, CA, BR ...
Europe -> FR, IT, CH ...
Asia -> CH, JP, KR ...
Solution
associate
would replace the value if the key already iterated.
You can instead use groupBy
to specify key and value for the map
csv.split("\n").map {
val (code, region) = it.split(";")
region to code
}.groupBy({ it.first }) { it.second }
Answered By - sidgate
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.