Kotlin中Collection一些语法总结
kotlin
对集合问题的支持很好,有很多方法可以方便又直观的对集合进行操作。比如 map
,count
,reduce
,filter
等方法,这个博客会持续总结些方法。
any
any
这个函数返回值是一个 boolean
类型,用于判断集合内元素是否用满足条件的,如果有任意一个集合满足该条件,则返回 true
否是为 false
。
示例代码
fun main(args: Array<String>) {
val list: List<Int> = listOf(1, 2, 4, 67, 7, 23, 55, 34) //sum = 193
val l = list.any {
it > 30
}
println("判断结果为 $l")
}
输出结果为
判断结果为 true
这里的 it
可以理解为 iterator
既为集合中的每个元素。之后有很多函数都是对 it
进行操作。
all
all
几乎和 any
很相似,只是用于判断每个元素,要集合内每个元素满足条件才会返回ture
,否则为 false
示例代码
fun main(args: Array<String>) {
val list: List<Int> = listOf(1, 2, 4, 67, 7, 23, 55, 34) //sum = 193
val l = list.all {
it > 30
}
println("判断结果为 $l")
}
判断结果为 false
map
map
这个函数对集合内的每一个元素进行迭代遍历,基本可以替代for
循环。
示例
fun main(args: Array<String>) {
val list: List<Int> = listOf(1, 2, 4, 67, 7, 23, 55, 34)
list.map {
print("$it ")
}
}
输出结果为:
1 2 4 67 7 23 55 34
这样就完成了对集合的迭代输出。
filter
顾名思义,filter为一个过滤器,可以对我们集合元素进行一次过滤,留下我们想要的元素。 例如我们要集合中的偶数元素。
示例代码
fun main(args: Array<String>) {
val list: List<Int> = listOf(1, 2, 4, 67, 7, 23, 55, 34)
list.filter { it % 2 == 0 }.map { print("$it ") }
}
输出
2 4 34
完成了对偶数元素的过滤,结合map进行一下输出。如果我们不用filter和map进行输出,那么我们将会写下下面的这种代码,而且 IDEA 也会给我们警告,让我们及时改进。
for (i in 0 until list.size) {
if (list[i] % 2 == 0) {
print("${list[i]} ")
}
}
此时就会感觉到了这些语法对于代码的简洁和易用。
count
即使对集合元素进行统计,如果直接使用 count()
对集合元素统计和直接用 size
没有什么区别,所以说 count
有更加高级的用法。
比如对集合内的某个元素进行统计或者某种类型的元素进行统计,比如统计集合中偶数的个数。
fun main(args: Array<String>) {
val list: List<Int> = listOf(1, 2, 4, 67, 7, 23, 55, 34)
val count = list.count {
it % 2== 0
}
println("集合中的偶数个数为 $count")
}
输出
集合中的偶数个数为 3
groupBy
这个用于分组,对元素进行按要求分组,最后的结果也会保存在两个集合中, true 和 false
示例代码
对奇偶数进行分组
val list: List<Int> = listOf(1, 2, 4, 67, 7, 23, 55, 34) //sum = 193
val result = list.groupBy {
it % 2 == 0
}
println("$result")
}
输出结果
{false=[1, 67, 7, 23, 55], true=[2, 4, 34]}
相关内容
如果你觉得这篇文章对你有所帮助,欢迎赞赏~
赞赏