kotlin入门-高阶函数(map,flatMap,reduce,fold)

本文介绍了Kotlin中四个重要的高阶函数:map用于集合操作,flatMap用于合并集合数据,reduce用于集合计算,fold则用于自定义集合计算逻辑,详细解释了它们的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用map函数对集合进行操作

fun main(args: Array<String>) {
    val list:Array<Int> = arrayOf(1,2,3,4,5,6,7,8)

    val newList = list.map {
        it*5+10
    }

    val doubleList = list.map(Int::toDouble)

    newList.forEach(::println)
    doubleList.forEach(::println)
}

使用flatMap对集合数据进行合并成一个集合

fun main(args: Array<String>) {
    val list = arrayOf(
            1..10,
            20..30,
            50..100
    )

    val mergeList = list.flatMap {
        it.map {
            "No.$it"
        }
    }

    mergeList.forEach(::println)
}

使用reduce对集合进行计算操作

fun main(args: Array<String>) {
    val list = arrayOf(
            1..10,
            20..30,
            50..100
    )

    val mergeList = list.flatMap { it }
    mergeList.forEach(::println)
    println("总和:${mergeList.reduce(Int::plus)}")
    println("总和:${mergeList.reduce { acc, i -> acc + i }}")

    /**
     * 方式1
     */
    (0..6).map {
        factorial(it)
    }.forEach(::println)

    /**
     * 方式2
     */
    (0..6).map(::factorial).forEach(::println)

}

/**
 * 求阶乘
 */
fun factorial(int: Int): Int {
    if (int == 0) return 1
    return (1..int).reduce { acc, i -> acc * i }
}

使用fold对集合进行自定义计算

fun main(args: Array<String>) {
    /**
     * 对集合进行转化和拼接
     */
    val _str: String = (0..10).joinToString(",")
    println(_str)

    /**
     * 添加一个初始值
     * 打印结果=》9
     */
    println((0..1).fold(8) { acc, i ->
        acc + i
    })

    /**
     * 添加一个StringBuilder的初始值与集合中的元素进行计算操作
     */
    val _str1 = (0..5).fold(StringBuilder()) { acc, i ->
        acc.append(i).append(",")
    }
    println(_str1)

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值