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,不会有打印。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AD钙奶-lalala

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值