[Doc Review]filter

kotlin-stdlib / kotlin.collections / filter

Summary

Returns a list containing only elements matching the given [predicate](kotlinlang.org/api/latest/jvm/stdlib/kotlin..).

public inline fun <T> Array<out T>.filter(predicate: (T) -> Boolean): List<T> {
    return filterTo(ArrayList<T>(), predicate)
}

Tip

  1. Implemented internally using filterTo().

  2. filterTo() determines the return type based on the destination(ArrayList<T>).

filterTo()

public inline fun <T, C : MutableCollection<in T>> Array<out T>.filterTo(destination: C, predicate: (T) -> Boolean): C {
    for (element in this) if (predicate(element)) destination.add(element)
    return destination
}

In Practice

Sum of divisors

class Solution {
    fun solution(n: Int): Int {
        return (1..n).filter{ n % it == 0}.sum()
    }
}

Supported Data Types

  • Array

  • ByteArray

  • ShortArray

  • IntArray

  • LongArray

  • FloatArray

  • DoubleArray

  • BooleanArray

  • CharArray

  • Iterable<T>

References

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter.html