filterNot

public inline fun <T> Iterable<T>.filterNot(predicate: (T) -> Boolean): List<T> {
    return filterNotTo(ArrayList<T>(), predicate)
}

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


val list = listOf(1, 2, 3, 4, 5)
println(list.filterNot{ it > 3 })  // [1, 2, 3]

Last updated