НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
398 of 1310 menu

Функция 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,
    которая преобразует элементы коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить