Created
March 17, 2020 09:49
-
-
Save toefel18/17d12abca5d99ed2fbee41c315b5941d to your computer and use it in GitHub Desktop.
csv flatmap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
data class Entry( | |
val age: Int, | |
val name: String, | |
val ziek: String, | |
val datum: String, | |
val afwezig: String | |
) | |
fun main() { | |
val csvEntries = listOf( | |
Entry(19, "Kaas", "nee", "2010-11-12", "nee"), | |
Entry(39, "Elleke", "ja", "2011-01-05", "ja"), | |
Entry(69, "Lorie", "nee", "2012-12-22", "nee"), | |
Entry(46, "Piet", "nee", "2017-07-04", "ja"), | |
Entry(22, "Friet", "nee", "2010-10-29", "nee") | |
) | |
csvEntries.forEach { println(it) } | |
println() | |
val etabEntries = csvEntries | |
.flatMap { row -> expandIfZiek(row) } | |
.flatMap { row -> expandIfAfwezig(row) } | |
etabEntries.forEach { println(it) } | |
} | |
fun expandIfZiek(row: Entry): List<Entry> { | |
return if (row.ziek == "ja") { | |
listOf(row, row.copy(name = "${row.name} WAS ZIEK")) | |
} else { | |
listOf(row) | |
} | |
} | |
fun expandIfAfwezig(row: Entry): List<Entry> { | |
return if (row.ziek == "ja") { | |
listOf(row, row.copy(name = "${row.name} WAS Afwezig")) | |
} else { | |
listOf(row) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment