您的位置:首页 > 其它

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

2017-11-29 16:54 190 查看
生产操作符需要两个原生集合来进行生产,所以先定义两个原生集合:

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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: