kotlin有关map和flatMap

   val list= listOf(1,2,3,4,5)
    val list2=list.map { listOf(it+1) }
    list2.map { println("my value is ${it}") }
    println(list2)
    println("----------------------------")
    val list3 = list.flatMap { listOf(it+1) }
    list3.map { println("my value is ${it}") }
    println(list3)

打印结果

my value is [2]
my value is [3]
my value is [4]
my value is [5]
my value is [6]
[[2], [3], [4], [5], [6]]
----------------------------
my value is 2
my value is 3
my value is 4
my value is 5
my value is 6
[2, 3, 4, 5, 6]

flatMap  遍历所有的元素 ,为每一个创建一个集合 ,最后把所有的集合放在一个集合中。 

map     返回一个每一个元素根据给定的函数转换所组成的List

 

flatMap的返回值必须是Iterable,map 则没有这个要求

下面使用map跟flatMap达到同样的效果

    val list= listOf(1,2,3,4,5)
    val list2=list.map { it+1 }
    list2.map { println("my value is ${it}") }
    println(list2)
    println("----------------------------")
    val list3 = list.flatMap { listOf(it+1) }
    list3.map { println("my value is ${it}") }
    println(list3)

 

你可能感兴趣的:(android应用)