Kotlin学习--集合操作符之生产操作符

生产操作符需要两个原生集合来进行生产,所以先定义两个原生集合:
val list_num : ArrayList = arrayListOf(1,2,3,5,6,7,8,7,6,5,4,3)
val list_num_two : ArrayList = arrayListOf(10,11,12,13,14,15,16)
1. zip 返回一个列表,对由两个具有相同索引的集合的元素。列表的长度最短的集合。
操作符:
Log.e(Str,”zip–> ${list_num.zip(list_num_two)}”)
结果:
zip–> [(1, 10), (2, 11), (3, 12), (5, 13), (6, 14), (7, 15), (8, 16)]
2. zip{} 返回一个由两个集合中相同索引的元素执行特定函数后生成的新集合。新集合的长度为两个原集合中最短的集合长度。

操作符:
Log.e(Str, “zip–> ${list_num.zip(list_num_two) { it, it2 -> it + it2 }}”)
结果:
zip–> [11, 13, 15, 18, 20, 22, 24]
3.one.zip(one+two) 括弧里面第二个集合貌似没啥用- -!
第一组数据:

Log.e(Str, “zip–> ${list_num_two.zip(list_num_two+list_num) }”)
结果:
[(10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16)]
第二组数据:

Log.e(Str, “zip–> ${list_num_two.zip(list_num+list_num_two) }”)
结果:
zip–> [(10, 1), (11, 2), (12, 3), (13, 5), (14, 6), (15, 7), (16, 8)]
第三组数据:

Log.e(Str, “zip–> ${list_num.zip(list_num+list_num_two) }”)
结果:
zip–> [(1, 1), (2, 2), (3, 3), (5, 5), (6, 6), (7, 7), (8, 8), (7, 7), (6, 6), (5, 5), (4, 4), (3, 3)]
第四组数据:

Log.e(Str, “zip–> ${list_num.zip(list_num_two+list_num) }”)
结果:
zip–> [(1, 10), (2, 11), (3, 12), (5, 13), (6, 14), (7, 15), (8, 16), (7, 1), (6, 2), (5, 3), (4, 5), (3, 6)]
4.listOf 返回一对列表,其中第一个列表是由由这个集合中的每一对的第一个值建立的,第二个列表是由这个集合中的每一对的第二个值构建的。
代码:

Log.e(Str,”${listOf(Pair(1,3), Pair(2,3),Pair(5,4)).unzip()}”)
结果:
([1, 2, 5], [3, 3, 4])
代码2:

Log.e(Str,”${listOf(Pair(1,3), Pair(2,3)).unzip()}”)
结果:
([1, 2], [3, 3])
5.partition 把一个给定的集合分割成两个,第一个集合是由原集合每一项元素匹配给定函数条件返回true的元素组成,
第二个集合是由原集合每一项元素匹配给定函数条件返回false的元素组成
代码:

Log.e(Str,”${list_num.partition{it%2==0}}”)
结果:
([2, 6, 8, 6, 4], [1, 3, 5, 7, 7, 5, 3])
6.plus 返回一个包含原集合和给定集合中所有元素的集合,因为函数的名字原因,我们可以使用+操作符。
代码:

Log.e(Str,”${list_num.plus(list_num_two)}”)
结果:
[1, 2, 3, 5, 6, 7, 8, 7, 6, 5, 4, 3, 10, 11, 12, 13, 14, 15, 16]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值