АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
403 of 1310 menu
Бесплатный тренинг по JavaScript: работа с Drag-and-Drop. Начало 2 октября. Жми для записи!

Функция filterKeys

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

Синтаксис

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

Пример

Отфильтруем карту, оставив только ключи, длина которых больше 3:

val map = mapOf("one" to 1, "two" to 2, "three" to 3, "four" to 4) val res = map.filterKeys { it.length > 3 } println(res)

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

{three=3, four=4}

Пример

Отфильтруем карту, оставив только ключи, начинающиеся на букву 't':

val map = mapOf("apple" to 1, "banana" to 2, "tomato" to 3, "tea" to 4) val res = map.filterKeys { it.startsWith("t") } println(res)

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

{tomato=3, tea=4}

Пример

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

val map = mapOf(1 to "a", 2 to "b", 3 to "c", 4 to "d", 5 to "e") val res = map.filterKeys { it % 2 == 0 } println(res)

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

{2=b, 4=d}

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

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

  • Map
  • MutableMap
  • HashMap
  • LinkedHashMap
  • SortedMap

Для других типов коллекций (Array, List, Set) функция filterKeys недоступна.

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

  • функцию filterValues,
    которая фильтрует элементы карты по значениям
  • функцию filter,
    которая фильтрует элементы коллекции по произвольному условию
  • функцию mapKeys,
    которая преобразует ключи карты
  • функцию mapValues,
    которая преобразует значения карты