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

被折叠的 条评论
为什么被折叠?



