MST

星途 面试题库

面试题:Kotlin中集合高阶函数map与flatMap的区别

请简述Kotlin集合高阶函数map与flatMap在功能和使用场景上的区别,并各举一个简单代码示例。
43.3万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试

功能区别

  • map:对集合中的每个元素应用给定的变换函数,返回一个新的集合,新集合的元素数量与原集合相同,只是每个元素都经过了变换函数的处理。
  • flatMap:首先对集合中的每个元素应用给定的变换函数,该函数返回一个集合,然后将所有这些返回的集合“扁平化”成一个单一的集合。

使用场景区别

  • map:当需要对集合中的每个元素进行独立的变换,且变换结果不需要合并时使用。例如,将一个整数集合中的每个数乘以2。
  • flatMap:当对每个元素进行变换后得到的结果是集合,并且需要将这些集合合并成一个集合时使用。例如,有一个字符串集合,每个字符串需要拆分成单词,最后得到一个包含所有单词的单一集合。

代码示例

map示例

val numbers = listOf(1, 2, 3)
val doubledNumbers = numbers.map { it * 2 }
println(doubledNumbers) 

flatMap示例

val sentences = listOf("Hello world", "Goodbye")
val words = sentences.flatMap { it.split(" ") }
println(words)