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

Функция mapNotNull

Функция mapNotNull применяет функцию-трансформер к каждому элементу коллекции и возвращает новую коллекцию, содержащую только те результаты преобразования, которые не равны null. Функция работает с массивами Array, списками List, множествами Set и другими типами коллекций.

Синтаксис

// Для Iterable inline fun <T, R : Any> Iterable<T>.mapNotNull( transform: (T) -> R? ): List<R>
// Для Array inline fun <T, R : Any> Array<out T>.mapNotNull( transform: (T) -> R? ): List<R>
// Для Map inline fun <K, V, R : Any> Map<K, V>.mapNotNull( transform: (Entry<K, V>) -> R? ): List<R>

Пример

Преобразуем список строк в числа, отфильтровав null значения:

val strings = listOf("1", "2", "abc", "4", "def") val numbers = strings.mapNotNull { it.toIntOrNull() } println(numbers)

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

List<Int> [1, 2, 4]

Пример

Работа с массивом строк и преобразование в числа:

val stringArray = arrayOf("10", "20", "xyz", "30") val result = stringArray.mapNotNull { it.toIntOrNull() } println(result)

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

List<Int> [10, 20, 30]

Пример

Использование с множеством Set:

val numberSet = setOf("1", "2", "3", "invalid") val validNumbers = numberSet.mapNotNull { it.toIntOrNull() } println(validNumbers)

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

List<Int> [1, 2, 3]

Пример

Работа с Map и преобразование значений:

val map = mapOf("a" to "1", "b" to "2", "c" to "text") val numbersFromMap = map.mapNotNull { entry -> entry.value.toIntOrNull() } println(numbersFromMap)

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

List<Int> [1, 2]

Пример

Комплексное преобразование с возвратом null в определенных условиях:

val data = listOf(1, 2, 3, 4, 5, 6) val evenSquares = data.mapNotNull { number -> if (number % 2 == 0) number * number else null } println(evenSquares)

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

List<Int> [4, 16, 36]

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

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