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

Функция filterValues

Функция filterValues выполняет фильтрацию значений в объекте Map по заданному предикату. Возвращает новую Map, содержащую только те пары ключ-значение, для которых значение удовлетворяет условию предиката.

Синтаксис

inline fun <K, V> Map<out K, V>.filterValues( predicate: (V) -> Boolean ): Map<K, V>

Параметры

predicate - функция-предикат, которая принимает значение типа V и возвращает Boolean. Если возвращается true, то пара ключ-значение включается в результирующую Map.

Возвращаемое значение

Новая неизменяемая Map типа Map, содержащая только те элементы, для которых предикат вернул true.

Для каких типов коллекций работает

Функция filterValues работает только с коллекциями типа Map и её наследниками. Не применяется к:

  • Array
  • List
  • Set
  • Iterable
  • Sequence

Пример

Отфильтруем Map, оставив только значения больше 10:

val numbers = mapOf("a" to 1, "b" to 15, "c" to 8, "d" to 20) val res = numbers.filterValues { it > 10 } println(res)

Результат выполнения кода:

{b=15, d=20}

Пример

Отфильтруем Map строк, оставив только строки длиной больше 3:

val words = mapOf(1 to "cat", 2 to "elephant", 3 to "dog", 4 to "butterfly") val res = words.filterValues { it.length > 3 } println(res)

Результат выполнения кода:

{2=elephant, 4=butterfly}

Пример

Отфильтруем изменяемую Map, оставив только чётные числа:

val mutableMap = mutableMapOf("x" to 2, "y" to 5, "z" to 8) val res = mutableMap.filterValues { it % 2 == 0 } println(res)

Результат выполнения кода:

{x=2, z=8}

Пример

Использование сложного предиката для фильтрации:

val data = mapOf("john" to 25, "mary" to 30, "peter" to 17, "anna" to 22) val res = data.filterValues { age -> age >= 18 && age <= 25 } println(res)

Результат выполнения кода:

{john=25, anna=22}

Смотрите также

  • функцию filter,
    которая фильтрует элементы по ключу и значению
  • функцию filterKeys,
    которая фильтрует элементы по ключам
  • функцию mapValues,
    которая преобразует значения Map
  • функцию any,
    которая проверяет наличие хотя бы одного элемента, удовлетворяющего условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить