mapNotNull

Common
JVM
JS
Native
1.0
inline fun < T , R : Any > Array < out T > . mapNotNull (
transform : ( T ) -> R ?
) : List < R >

(source)

Returns a list containing only the non-null results of applying the given transform function to each element in the original array.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val strings: List<String> = listOf("12a", "45", "", "3")
val ints: List<Int> = strings.mapNotNull { it.toIntOrNull() }

println(ints) // [45, 3]
println(ints.sum()) // 48
//sampleEnd
}
Common
JVM
JS
Native
1.0
inline fun < T , R : Any > Iterable < T > . mapNotNull (
transform : ( T ) -> R ?
) : List < R >

(source)

Returns a list containing only the non-null results of applying the given transform function to each element in the original collection.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val strings: List<String> = listOf("12a", "45", "", "3")
val ints: List<Int> = strings.mapNotNull { it.toIntOrNull() }

println(ints) // [45, 3]
println(ints.sum()) // 48
//sampleEnd
}
Common
JVM
JS
Native
1.0
inline fun < K , V , R : Any > Map < out K , V > . mapNotNull (
transform : ( Entry < K , V > ) -> R ?
) : List < R >

(source)

Returns a list containing only the non-null results of applying the given transform function to each entry in the original map.

import kotlin.test.*
import java.util.*

fun main(args: Array<String>) {
//sampleStart
val map = mapOf("Alice" to 20, "Tom" to 13, "Bob" to 18)
val adults = map.mapNotNull { (name, age) -> name.takeIf { age >= 18 } }

println(adults) // [Alice, Bob]
//sampleEnd
}