Skip to content

Instantly share code, notes, and snippets.

@PriyaSindkar
Created August 24, 2022 05:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PriyaSindkar/a74dc5c3efed40a848b5f777dac739d5 to your computer and use it in GitHub Desktop.
Save PriyaSindkar/a74dc5c3efed40a848b5f777dac739d5 to your computer and use it in GitHub Desktop.
data class Address(var addressLine1: String, var city: String)
data class Person(var name: String, var address: Address)
fun main() {
// map
val listOfPeople = listOf<Person>(
Person("Jane", Address("Manjalpur", "Vadodara")),
Person("John", Address("Vastrapur", "Ahmedabad")),
Person("Bob", Address("Bandra", "Mumbai"))
)
val people = listOfPeople.map { it.name to it.address.city }
print("List of Pair of each person and their city = $people")
// flatmap
val listOfMumbaiPeople = listOf<Person>(
Person("John", Address("Thane", "Mumbai")),
Person("Bob", Address("Bandra", "Mumbai"))
)
val listOfVadodaraPeople = listOf<Person>(
Person("Jane", Address("Manjalpur", "Vadodara")),
Person("Alice", Address("Akota", "Vadodara"))
)
val allPeople = listOf(listOfMumbaiPeople, listOfVadodaraPeople)
val names = allPeople.flatMap { it.map { it.name } }
print("\nAll names from all lists = $names")
// flattten() - combine list of lists into one single list
print("\nSingle list of all people = ${allPeople.flatten()}")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment