天天看點

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 則沒有這個要求

kotlin有關map和flatMap

下面使用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)