在Kotlin中,mapNotNull
的等价物是flatMap
。
mapNotNull
是一个高阶函数,它接收一个lambda表达式作为参数,并将其应用于集合中的每个元素。它返回一个新的集合,其中包含lambda表达式返回非空结果的元素。
flatMap
也是一个高阶函数,它接收一个lambda表达式作为参数,并将其应用于集合中的每个元素。不同的是,flatMap
的lambda表达式返回一个集合,而不是单个元素。最后,flatMap
将所有返回的集合合并成一个新的集合。
mapNotNull
和flatMap
的区别在于,mapNotNull
只保留lambda表达式返回非空结果的元素,而flatMap
将所有返回的集合合并成一个新的集合。
以下是flatMap
的使用示例:
val list = listOf(1, 2, 3, 4, 5)
val result = list.flatMap { if (it % 2 == 0) listOf(it, it * 2) else emptyList() }
println(result) // 输出:[2, 4, 4, 8]
在上面的示例中,我们使用flatMap
将原始列表中的偶数元素和它们的两倍值合并成一个新的列表。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云