С указанными ниже классами данных:
data class Photo(val id: String)
data class Album(val id: String, val photos: List<Photo>)
Я хочу иметь возможность превратить список Albums
в карту Map<photoId, Set<albumId>>
, например:
val albums = listOf(
Album("1", listOf(
Photo("1"),
Photo("2"),
Photo("3")
)),
Album("2", listOf(
Photo("1"),
Photo("2")
))
)
преобразуется в:
val map = mapOf(
Pair("1", setOf("1", "2")),
Pair("2", setOf("1", "2")),
Pair("3", setOf("1")
)
Есть ли способ сделать это, используя функции преобразования kotlin / lambdas?например, groupBy, flatMap?