kotlin学习第三天:kotlin集合

kotlin集合

    • 1.集合的映射操作
      • 1.filter操作
      • 2.map操作
      • 3.flatMap变换
      • 4.asSequence方法
    • 2.集合的聚合操作
      • 1.fold操作

学习视频地址:https://coding.imooc.com/class/398.html

1.集合的映射操作

kotlin学习第三天:kotlin集合_第1张图片

1.filter操作

kotlin学习第三天:kotlin集合_第2张图片

val list= intArrayOf(1,2,3,4)

list.filter {
    it%2==0
}.forEach {
    println(it)
}

kotlin学习第三天:kotlin集合_第3张图片

2.map操作

kotlin学习第三天:kotlin集合_第4张图片

val list= intArrayOf(1,2,3,4)
list.map {
    it*3+2
}.forEach {
    println(it)
}

输出:
kotlin学习第三天:kotlin集合_第5张图片

3.flatMap变换

kotlin学习第三天:kotlin集合_第6张图片

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")
    }

输出:
kotlin学习第三天:kotlin集合_第7张图片

加上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")
        }

输出:
kotlin学习第三天:kotlin集合_第8张图片

2.集合的聚合操作

kotlin学习第三天:kotlin集合_第9张图片

1.fold操作

kotlin学习第三天:kotlin集合_第10张图片

val list= intArrayOf(1,2,3,4)
val a=list.fold(StringBuilder()){
 acc,i->acc.append(i)
}
println(a)

输出:
在这里插入图片描述

你可能感兴趣的:(kotlin,学习,java)