Функция filter
Функция filter
применяется к коллекциям и выполняет
фильтрацию элементов по заданному предикату (условию).
Возвращает новую коллекцию, содержащую только те элементы
исходной коллекции, которые удовлетворяют условию.
Исходная коллекция при этом не изменяется.
Импорт
import kotlin.collections.filter
Синтаксис
// Для Iterable (List, Set)
inline fun <T> Iterable<T>.filter(
predicate: (T) -> Boolean
): List<T>
// Для Array
inline fun <T> Array<T>.filter(
predicate: (T) -> Boolean
): List<T>
// Для Map
inline fun <K, V> Map<out K, V>.filter(
predicate: (Entry<K, V>) -> Boolean
): Map<K, V>
// Для Sequence
fun <T> Sequence<T>.filter(
predicate: (T) -> Boolean
): Sequence<T>
Пример
Фильтрация массива чисел:
val numbers = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers)
Результат выполнения кода:
List<Int> [2, 4, 6, 8, 10]
Пример
Фильтрация списка строк:
val words = listOf("apple", "banana", "cherry", "date", "elderberry")
val longWords = words.filter { it.length > 5 }
println(longWords)
Результат выполнения кода:
List<String> ["banana", "cherry", "elderberry"]
Пример
Фильтрация множества:
val numbersSet = setOf(10, 20, 30, 40, 50, 60)
val smallNumbers = numbersSet.filter { it < 35 }
println(smallNumbers)
Результат выполнения кода:
List<Int> [10, 20, 30]
Пример
Фильтрация Map по значениям:
val map = mapOf("a" to 1, "b" to 2, "c" to 3, "d" to 4)
val filteredMap = map.filter { it.value > 2 }
println(filteredMap)
Результат выполнения кода:
Map<String, Int> {c=3, d=4}
Пример
Фильтрация с использованием сложного условия:
val numbers = listOf(15, 25, 35, 45, 55, 65)
val result = numbers.filter {
it > 20 && it < 60 && it % 5 == 0
}
println(result)
Результат выполнения кода:
List<Int> [25, 35, 45, 55]
Для каких типов коллекций работает
Функция filter
работает со следующими типами коллекций:
Array
- массивыList
- спискиSet
- множестваMap
- ассоциативные массивыSequence
- последовательностиIterable
- любые итерируемые коллекции
Смотрите также
-
функцию
filterNot
,
которая фильтрует элементы, не удовлетворяющие условию -
функцию
filterNotNull
,
которая фильтрует null значения -
функцию
filterIndexed
,
которая фильтрует элементы с учетом их индекса -
функцию
map
,
которая преобразует элементы коллекции