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

Функция filterIsInstance

Функция filterIsInstance выполняет фильтрацию коллекции, оставляя только те элементы, которые являются экземплярами указанного типа. Возвращает новую коллекцию того же типа, что и исходная. Функция доступна для различных типов коллекций: Array, List, Set, Map и других.

Импорт

import kotlin.collections.filterIsInstance

Синтаксис

// Для Array inline fun <reified R> Array<*>.filterIsInstance(): List<R>
// Для Iterable (List, Set) inline fun <reified R> Iterable<*>.filterIsInstance(): List<R>
// Для Map inline fun <reified K, reified V> Map<*, *>.filterIsInstance(): Map<K, V>

Пример

Отфильтруем элементы массива разных типов, оставив только строки:

val mixedArray: Array<Any> = arrayOf(1, "abcde", 3.14, "12345", true) val stringArray: List<String> = mixedArray.filterIsInstance<String>() println(stringArray)

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

List<String> ["abcde", "12345"]

Пример

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

val mixedList: List<Any> = listOf("text", 42, 3.14, 100, 'c') val intList: List<Int> = mixedList.filterIsInstance<Int>() println(intList)

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

List<Int> [42, 100]

Пример

Отфильтруем элементы множества, оставив только числа типа Double:

val mixedSet: Set<Any> = setOf(1, 2.5, "hello", 3.14, 2.5) val doubleSet: List<Double> = mixedSet.filterIsInstance<Double>() println(doubleSet)

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

List<Double> [2.5, 3.14]

Пример

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

val mixedMap: Map<Any, Any> = mapOf( "one" to 1, 2 to "two", "three" to 3, 4.0 to 4 ) val stringIntMap: Map<String, Int> = mixedMap.filterIsInstance<String, Int>() println(stringIntMap)

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

Map<String, Int> {one=1, three=3}

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

  • функцию filter,
    которая выполняет фильтрацию по пользовательскому условию
  • функцию filterNotNull,
    которая фильтрует null-значения из коллекции
  • функцию map,
    которая преобразует элементы коллекции
  • функцию distinct,
    которая удаляет дубликаты из коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить