So im looking for a sparse left join on some data,...
# general-advice
g
So im looking for a sparse left join on some data,
Copy code
val left = listOf(
    CoolRecord("name1", emptyList()),
    CoolRecord("name2", emptyList()),
    CoolRecord("name3", emptyList())
)
val right = listOf(
    CoolRecord("name1", listOf(1.0, 2.0))
    CoolRecord("name3", listOf(5.0, 6.0))
)

val result = reallySlickJoinFunction(left, right)

assertEquals(result, listOf(
  CoolRecord("name1", listOf(1.0, 2.0)),
  CoolRecord("name2", emptyList()),
  CoolRecord("name3", listOf(5.0, 6.0))
))
anybody got some hints on how i can implement
reallySlickJoinFunction
?
a
Do you think groupingBy would suit your needs?
Copy code
fun reallySlickJoinFunction(left: List<CoolRecord>, right: List<CoolRecord>): List<CoolRecord> {
  return (left + right)
    .groupingBy { it.name }
    .reduce { name, l, r ->
      CoolRecord(name, l.contents + r.contents)
    }
    .values.toList()
}
https://pl.kotl.in/ZKguRwShF