mapNotNull
Platform and version requirements: JVM (1.0), JS (1.0), Native (1.0)
inline fun <T, R : Any> Array<out T>.mapNotNull(
transform: (T) -> R?
): List<R>
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>) {
val strings: List<String> = listOf("12a", "45", "", "3")
val ints: List<Int> = strings.mapNotNull { it.toIntOrNull() }
println(ints)
println(ints.sum())
}
Platform and version requirements: JVM (1.0), JS (1.0), Native (1.0)
inline fun <T, R : Any> Iterable<T>.mapNotNull(
transform: (T) -> R?
): List<R>
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>) {
val strings: List<String> = listOf("12a", "45", "", "3")
val ints: List<Int> = strings.mapNotNull { it.toIntOrNull() }
println(ints)
println(ints.sum())
}
Platform and version requirements: JVM (1.0), JS (1.0), Native (1.0)
inline fun <K, V, R : Any> Map<out K, V>.mapNotNull(
transform: (Entry<K, V>) -> R?
): List<R>
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>) {
val map = mapOf("Alice" to 20, "Tom" to 13, "Bob" to 18)
val adults = map.mapNotNull { (name, age) -> name.takeIf { age >= 18 } }
println(adults)
}