kotlin-集合变换与序列(重要)

1.filter关键字

        val list = listOf(0,1,2,3,4,5,6)
        val list2 = list.filter {
            it % 2 == 0
        }
        list2.forEach {
            println(it)
        }

打印日志:

2021-06-08 00:03:38.594 11697-11697/com.example.myapplication I/System.out: 0
2021-06-08 00:03:38.594 11697-11697/com.example.myapplication I/System.out: 2
2021-06-08 00:03:38.594 11697-11697/com.example.myapplication I/System.out: 4
2021-06-08 00:03:38.594 11697-11697/com.example.myapplication I/System.out: 6

在kotlin里面可以通过filter筛选集合组成一个新的集合,非常方便。

2.map关键字

        val list = listOf(0, 1, 2, 3, 4, 5, 6)
        val list2 = list.map {
            it * 2 + 10
        }
        list2.forEach {
            println(it)
        }

控制台打印结果:

2021-06-08 00:08:24.287 13353-13353/com.example.myapplication I/System.out: 10
2021-06-08 00:08:24.287 13353-13353/com.example.myapplication I/System.out: 12
2021-06-08 00:08:24.287 13353-13353/com.example.myapplication I/System.out: 14
2021-06-08 00:08:24.287 13353-13353/com.example.myapplication I/System.out: 16
2021-06-08 00:08:24.287 13353-13353/com.example.myapplication I/System.out: 18
2021-06-08 00:08:24.287 13353-13353/com.example.myapplication I/System.out: 20
2021-06-08 00:08:24.287 13353-13353/com.example.myapplication I/System.out: 22

map可以将集合中的元素进行一定的数学处理组成一个新的集合。

3.集合序列

        val list = listOf(0, 1, 2, 3, 4, 5, 6)
        list.asSequence().filter {
            println("filter-->$it")
            it % 2 == 0
        }.map {
            println("map-->$it")
            it * 2 + 9
        }.forEach {
            println("foreach-->$it")
        }

控制台打印:

16605-16605/com.example.myapplication I/System.out: filter-->0
16605-16605/com.example.myapplication I/System.out: map-->0
16605-16605/com.example.myapplication I/System.out: foreach-->9
16605-16605/com.example.myapplication I/System.out: filter-->1
16605-16605/com.example.myapplication I/System.out: filter-->2
16605-16605/com.example.myapplication I/System.out: map-->2
16605-16605/com.example.myapplication I/System.out: foreach-->13
16605-16605/com.example.myapplication I/System.out: filter-->3
16605-16605/com.example.myapplication I/System.out: filter-->4
16605-16605/com.example.myapplication I/System.out: map-->4
16605-16605/com.example.myapplication I/System.out: foreach-->17
16605-16605/com.example.myapplication I/System.out: filter-->5
16605-16605/com.example.myapplication I/System.out: filter-->6
16605-16605/com.example.myapplication I/System.out: map-->6
16605-16605/com.example.myapplication I/System.out: foreach-->21
asSequence()我们可以看成水流,会让变换依次执行,foreach相当于水龙头,如果没有foreach,不会有打印。

 

 

 

 

你可能感兴趣的:(kotlin)