Функция asIntArray
Функция asIntArray преобразует массив чисел
типа Int? в массив IntArray.
При этом выполняется проверка на null значения
и выбрасывается исключение, если в исходном
массиве присутствуют null значения.
Импорт
import kotlin.collections.asIntArray
Синтаксис
fun Array<Int?>.asIntArray(): IntArray
Пример
Преобразуем массив чисел типа Int?
без null значений в IntArray:
val numbers: Array<Int?> = arrayOf(1, 2, 3, 4, 5)
val res: IntArray = numbers.asIntArray()
println(res.contentToString())
Результат выполнения кода:
IntArray [1, 2, 3, 4, 5]
Пример
Попробуем преобразовать массив с null значениями:
val numbers: Array<Int?> = arrayOf(1, null, 3, 4, 5)
val res: IntArray = numbers.asIntArray()
println(res.contentToString())
Результат выполнения кода:
Exception: java.lang.NullPointerException
Пример
Для безопасного преобразования с фильтрацией
null значений используйте комбинацию с
функцией filterNotNull:
val numbers: Array<Int?> = arrayOf(1, null, 3, null, 5)
val notNullNumbers = numbers.filterNotNull().toIntArray()
println(notNullNumbers.contentToString())
Результат выполнения кода:
IntArray [1, 3, 5]
Пример
Сравнение производительности asIntArray
и toIntArray:
val numbers: Array<Int?> = arrayOf(1, 2, 3, 4, 5)
// Быстрое преобразование без проверки null
val fastRes = numbers.asIntArray()
// Безопасное преобразование с проверкой
val safeRes = numbers.toIntArray()
println("asIntArray: ${fastRes.contentToString()}")
println("toIntArray: ${safeRes.contentToString()}")
Результат выполнения кода:
asIntArray: [1, 2, 3, 4, 5]
toIntArray: [1, 2, 3, 4, 5]
Смотрите также
-
функцию
toIntArray,
которая безопасно преобразует массив сnullзначениями -
функцию
toInt,
которая преобразует различные типы данных вInt -
функцию
toIntOrNull,
которая безопасно преобразует строки и другие типы вInt -
функцию
asList,
которая преобразует массив в список