继续学习

集合操作符

在kotlin中,关于集合的操作符分为6种,分别是:总数擦欧总夫,过滤操作符,映射操作符,顺序操作符,生产操作符和元素操作符。

总数操作符

太多内容,不一一列举,使用时可以再上网察看

1
2
3
4
5
6
7
val a = listOf(1, "2", 43, true)
println(a.any())//true
println(a.any { it is Number })//true
println(a.all { it is Int })//false
println(a.count())//4
println(a.count { it is Number })//2
a.forEach { println(it) }

过滤操作符

drop():从第一项开始去除前n个元素,并返回剩余的元素列表。
dropWhile{}:根据给定函数从第一项开始去掉指定元素,直到不满足条件为止的前面的元素,并返回剩余元素列表。
dropLastWhile{}:根据给定函数从最后一项开始去掉指定元素,直到不满足条件为止的后面的元素,并返回剩余元素的列表。
filter{}:过滤出所有符合给定函数条件的元素。
filterNot{}:过滤所有不符合给定函数条件的元素。
filterNotNull():过滤所有元素中不是null的元素。
slice():过滤一个list中指定index的元素。
take():返回从第一个开始的n个元素。
takeLast():返回从最后一个开始的n个元素。
takeWhile{}:返回从第一个开始符合给定函数条件的元素,直到不符合条件为止。
takeLastWhile{}:返回从最后一个开始符合给定函数条件的元素,直到不符合条件为止。

映射操作符

map{}:将集合的每个元素映射成其他类型,组装成新的集合。新的集合长度和原有的长度一样
mapIndexed{}:为每一个索引设置新的元素,组装成新的集合
mapNotNull{} : mapNotNull和map的效果一样,只是mapNotNull过滤掉为null的元素
flatMap:可以合并集合并做一些小动作

1
2
3
4
val a = listOf(1, "2", 43, true)
val b = listOf(3,4,5)
var c = listOf(a,b).flatMap { it -> it }
println(c)

groupBy{}将集合中的元素按某个条件进行分组,返回map

1
2
3
val a = listOf(1, 42,5,14,421)
println(a.groupBy { if(it<10)"small" else "big" })
//{small=[1, 5], big=[42, 14, 421]}

顺序生产元素不细讲,使用时再学