data class User(val name: String, val tags: List<String>)
fun main() {
val users = listOf(
User("Alice", listOf("admin", "editor")),
User("Bob", listOf("editor", "viewer")),
User("Cara", listOf("admin")),
)
// All tags across all users (with duplicates)
val allTags: List<String> = users.flatMap { it.tags }
println(allTags) // [admin, editor, editor, viewer, admin]
// Distinct tags
println(allTags.distinct()) // [admin, editor, viewer]
// flatten — when you already have a List<List<T>>
val nested = listOf(listOf(1, 2), listOf(3, 4, 5), listOf(6))
println(nested.flatten()) // [1, 2, 3, 4, 5, 6]
// String chars from a list of words
val chars = listOf("hi", "bye").flatMap { it.toList() }
println(chars) // [h, i, b, y, e]
}
Create a free account and build your private vault. Share publicly whenever you want.