学习视频地址:https://coding.imooc.com/class/398.html
1.集合的映射操作
1.filter操作
val list= intArrayOf(1,2,3,4)
list.filter {
it%2==0
}.forEach {
println(it)
}
2.map操作
val list= intArrayOf(1,2,3,4)
list.map {
it*3+2
}.forEach {
println(it)
}
输出:
3.flatMap变换
val list= intArrayOf(1,2,3,4)
list.flatMap {
0 until it
}.joinToString().let(::println)
4.asSequence方法
将上面那些方法变为懒汉式,转化为序列
没有加asSequence方法
println("----------------------")
val list= intArrayOf(1,2,3,4)
list
.filter {
println("filter:$it")
it % 2==0
}.map {
println("map:$it")
it*2+1
}.forEach {
println("forEach:$it")
}
输出:
加上asSequene方法
加上之后变为懒汉式,会按照代码顺序来打印,没有加的时候,是要filter全部打印完,才打印map。
println("----------------------")
val list= intArrayOf(1,2,3,4)
list.asSequence()
.filter {
println("filter:$it")
it % 2==0
}.map {
println("map:$it")
it*2+1
}.forEach {
println("forEach:$it")
}
输出:
2.集合的聚合操作
1.fold操作
val list= intArrayOf(1,2,3,4)
val a=list.fold(StringBuilder()){
acc,i->acc.append(i)
}
println(a)
输出: