kotlin : map / flatMap / flatten

//下面使用map跟flatMap达到同样的效果
@Test
fun test1() {
    val list = listOf(1, 2, 3, 4, 5)
    println("----------------------------")
    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)
}
//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]



//======================================

//铺平集合:test2 等价 test3
//flatMap 与 flatten 达到相同的效果
@Test
fun test2() {
    val list = listOf(
        1..3,
        4..7,
        9..11
    )
    val flatList = list.flatMap { it }
    flatList.forEach(::println)
}


@Test
fun test3() {
    val list = listOf(
        1..3,
        4..7,
        9..11
    )
    val flatList = list.flatten()
    flatList.forEach(::println)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值