Skip to content

Instantly share code, notes, and snippets.

@toefel18
Created March 17, 2020 09:49
Show Gist options
  • Save toefel18/17d12abca5d99ed2fbee41c315b5941d to your computer and use it in GitHub Desktop.
Save toefel18/17d12abca5d99ed2fbee41c315b5941d to your computer and use it in GitHub Desktop.
csv flatmap
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