Kotlin学习笔记(十一)函数操作符(过滤操作符)
2020-10-23 本文已影响0人
大虾啊啊啊
1.drop
过滤掉前面N个元素
package com.example.kotlin01
val list = listOf(1, 2, 3, 4, 5)
fun main() {
var result = list.drop(3)
println(result)
}
[4, 5]
2.dropWhile
从第一个开始往后遍历,当遇到不满足条件的则返回剩余的列表
package com.example.kotlin01
val list = listOf(1, 2, 3, 4,0, 5)
fun main() {
val result = list.dropWhile { it <= 3 }
println(result)
}
[4, 0, 5]
以上例子从1开始,到了4的时候发现不满足条件,则返回剩余的列表4,0,5
3.dropLastWhile
从最后一个开始往前遍历,当遇到不满足条件的返回剩余的列表
package com.example.kotlin01
val list = listOf(10, 1, 3, 5, 7, 9)
fun main() {
val result = list.dropLastWhile { it >8 }
println(result)
}
从9开始往前遍历,当遇到7的时候,发现不满足,把剩余的列表返回
[10, 1, 3, 5, 7]
4.filter
过滤掉不满足的元素,留下满足的元素
package com.example.kotlin01
val list = listOf(10, 1, 3, 5, 7, 9)
fun main() {
val result = list.filter {
it>3
}
println(result)
}
[10, 5, 7, 9]
5.filterNot
和filter相反,过滤掉满足的元素,留下不满足的元素
package com.example.kotlin01
val list = listOf(10, 1, 3, 5, 7, 9)
fun main() {
val result = list.filterNot {
it>3
}
println(result)
}
[1, 3]
6.filterNotNull
过滤掉为null的元素,留下不为null的元素
package com.example.kotlin01
val list = listOf(10, 1, 3, 5, 7, 9,null)
fun main() {
val result = list.filterNotNull()
println(result)
}
[10, 1, 3, 5, 7, 9]
7.slice
获取指定索引index的元素
package com.example.kotlin01
val list = listOf(10, 1, 3, 5, 7, 9,null)
fun main() {
val result = list.slice(listOf(1,2))
println(result)
}
获取list中索引为1,2的元素,组成一个新的集合
8.take
返回第一个开始往后的N个元素
package com.example.kotlin01
val list = listOf(10, 1, 3, 5, 7, 9,null)
fun main() {
val result = list.take(3)
println(result)
}
[10, 1, 3]
9.takeLast
返回最后一个开始,往前的N个元素,和take相反
package com.example.kotlin01
val list = listOf(10, 1, 3, 5, 7, 9,null)
fun main() {
val result = list.takeLast(3)
println(result)
}
[7, 9, null]
10.takeWhile
第一个元素往后遍历,获取符合条件的元素,只要遇到不满足的立刻停止遍历
package com.example.kotlin01
val list = listOf(10, 1, 3, 5, 7, 9)
fun main() {
val result = list.takeWhile {
it >5
}
println(result)
}
[10]
package com.example.kotlin01
val list = listOf(4, 1, 3, 5, 7, 9)
fun main() {
val result = list.takeWhile {
it >5
}
println(result)
}
[]