Функция 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
,
которая преобразует значения карты