Я вижу, что Kotlin имеет ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray, что эквивалентно byte[], short[], int[],char[], double[], float[]в Java.
Теперь мне интересно, есть ли StringArrayэквивалент Java String[]?
Там нет особого случая String, потому что Stringэто обычный ссылочной типа на JVM, в отличии от Java примитивов ( int, double, ...) - хранить их в ссылке Array<T>требует бокса в объекты , как IntegerиDouble . Назначение специализированных массивов, как IntArrayв Kotlin, состоит в том, чтобы хранить неупакованные примитивы, избавляя от накладных расходов на упаковку и распаковку (то же самое, что Java int[]вместо Integer[]).
Вы можете использовать Array<String>(и Array<String?>для nullables), что эквивалентно String[]в Java:
Эти типы существуют для того, чтобы вы могли создавать массивы примитивов, а не штучные типы. Поскольку String не является примитивом в Java, вы можете просто использовать его Array<String>в Kotlin как эквивалент Java String[].
typealias StringArray = Array<String>
;)Ответы:
Там нет особого случая
String
, потому чтоString
это обычный ссылочной типа на JVM, в отличии от Java примитивов (int
,double
, ...) - хранить их в ссылкеArray<T>
требует бокса в объекты , какInteger
иDouble
. Назначение специализированных массивов, какIntArray
в Kotlin, состоит в том, чтобы хранить неупакованные примитивы, избавляя от накладных расходов на упаковку и распаковку (то же самое, что Javaint[]
вместоInteger[]
).Вы можете использовать
Array<String>
(иArray<String?>
для nullables), что эквивалентноString[]
в Java:Смотрите также: Массивы в справочнике по языку
источник
использовать arrayOf , arrayOfNulls , emptyArray
источник
Для создания пустого
Array of Strings
в Kotlin вы должны использовать один из следующих шести подходов:Первый подход:
Второй подход:
Третий подход:
Четвертый подход:
Пятый подход:
Шестой подход:
источник
Эти типы существуют для того, чтобы вы могли создавать массивы примитивов, а не штучные типы. Поскольку String не является примитивом в Java, вы можете просто использовать его
Array<String>
в Kotlin как эквивалент JavaString[]
.источник
Для
Strings
и других типов, вы просто используетеArray<*>
. ПричинаIntArray
и другие существуют, чтобы предотвратить автобокс.Так
int[]
относится к тому,IntArray
гдеInteger[]
относится кArray<Int>
.источник
Некоторые из распространенных способов создания массива String:
Это создаст массив из 5 строк с начальными значениями, которые будут пустой строкой.
<String?>
(5)Это создаст массив размером 5 с начальными значениями, равными нулю. Вы можете использовать данные String для изменения массива.
Когда вы уже знаете содержимое массива, вы можете напрямую инициализировать массив.
Существует также простой способ создания многомерного массива строк.
var matrix = Array (5) {Array (6) {""}}
Таким образом, вы можете создать матрицу из 5 строк и 6 столбцов с начальными значениями пустой строки.
источник
Этот пример отлично работает в Android
В kotlin вы можете использовать лямбда-выражение для этого. Определение конструктора массива Kotlin:
Который оценивает:
Или:
В этом примере определение поля было:
Надеюсь это поможет
источник
Вы также можете использовать:
например.
источник