map Not Null
Returns a list containing only the non-null results of applying the given transform function to each element in the original array.
Samples
import samples.*
import kotlin.test.*
fun main() {
//sampleStart
val strings: List<String> = listOf("12a", "45", "", "3")
val ints: List<Int> = strings.mapNotNull { it.toIntOrNull() }
assertPrints(ints, "[45, 3]")
assertPrints(ints.sum(), "48")
//sampleEnd
}
Returns a list containing only the non-null results of applying the given transform function to each element in the original collection.
Samples
import samples.*
import kotlin.test.*
fun main() {
//sampleStart
val strings: List<String> = listOf("12a", "45", "", "3")
val ints: List<Int> = strings.mapNotNull { it.toIntOrNull() }
assertPrints(ints, "[45, 3]")
assertPrints(ints.sum(), "48")
//sampleEnd
}
Returns a list containing only the non-null results of applying the given transform function to each entry in the original map.
Samples
import samples.*
import kotlin.test.*
import java.util.*
fun main() {
//sampleStart
val map = mapOf("Alice" to 20, "Tom" to 13, "Bob" to 18)
val adults = map.mapNotNull { (name, age) -> name.takeIf { age >= 18 } }
assertPrints(adults, "[Alice, Bob]")
//sampleEnd
}