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 ...
csv
.split("\n")
.groupBy({ it.substringAfter(";") }) { it.substringBefore(";") }})
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 }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With