Careeroza
Filtering Collections
filter and Friends
Example
fun main() {
val nums = listOf(5, 12, 7, 20, 3, 12, 15)
println(nums.filter { it > 10 })
println(nums.filterNot { it > 10 })
println(nums.filterIndexed { i, _ -> i % 2 == 0 })
println(nums.distinct())
println(nums.take(3))
println(nums.drop(5))
println(nums.takeWhile { it < 20 })
println(nums.first { it > 10 })
println(nums.firstOrNull { it > 100 })
val mixed: List<Any> = listOf("a", 1, "b", 2.5, 3)
println(mixed.filterIsInstance<Int>())
}Output
[12, 20, 12, 15] [5, 7, 3] [5, 7, 3, 15] [5, 12, 7, 20, 3, 15] [5, 12, 7] [12, 15] [5, 12, 7] 12 null [1, 3]
Checking Conditions
Example
fun main() {
val marks = listOf(78, 92, 35, 66)
println("any failed? ${marks.any { it < 40 }}")
println("all passed? ${marks.all { it >= 40 }}")
println("none above 95? ${marks.none { it > 95 }}")
println("count >= 60: ${marks.count { it >= 60 }}")
println("contains 92: ${92 in marks}")
}Output
any failed? true all passed? false none above 95? true count >= 60: 3 contains 92: true