0
点赞
收藏
分享

微信扫一扫

Kotlin中变换函数map与flatmap

gy2006_sw 2022-02-10 阅读 66
//Kotlin中变换函数map与flatmap
fun main() {
    val list = listOf("张三", "李四", "王五")
    //原理:把匿名函数最后一行的返回值加入一个新的集合,新集合的泛型是R,并且返回新集合
    val list2: List<Int> = list.map {
        //it == T == 元素 == String
        "[$it]"
        88
    }
    println(list2)
    //用途:和RxJava的思路一样
    val list3: List<String> = list.map {
        "姓名是:$it"
    }.map {
        "$it,文字长度是:${it.length}"
    }.map {
        "[$it]"
    }
    for (s in list3) {
        println("$s ")
    }

    //map{返回类型:T String Int Boolean... 把每一个元素加入到新的集合,最后返回List<String>}
    //flatMap{返回类型:每一个元素T 集合1 集合2... 把每一个元素(集合)加入到新集合,最后返回新集合List<List<String>>
    //最终内部会处理成List<String>
    //flatMap 相当于List<List<String>>集合的集合,有嵌套关系
    val list4: List<String> = listOf("张三", "李四", "王五")
    val newList: List<String> = list4.map {
        "内容是:$it"  //每次返回一个 String
    }.map {
        "$it, 长度是:${it.length}"
    }.flatMap {
        listOf("$it,在学习C++", "$it,在学习Java", "$it,在学习Kotlin")
    }
    println(newList)
    val newList2: List<String> = list.flatMap {
        listOf("$it,在学习C++", "$it,在学习Java", "$it,在学习Kotlin")
    }
    println(newList2)
}
举报

相关推荐

0 条评论