Я вижу, что в Kotlin есть ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray, которые эквивалентны byte [], short [], int [], char [], double [], float [] в Java.

Теперь мне интересно, есть ли StringArray эквивалент String []?

в Java

chancyWu

Ответов: 8

Ответы (8)

Для Stringнет специального случая, потому что String является обычным ссылочным типом в JVM, в отличие от примитивов Java (int, double, ...) - сохранение их в ссылке Array требует упаковки их в объекты типа Integer и Двойной. Назначение специализированных массивов, таких как IntArray в Kotlin, - хранить неупакованные примитивы, избавляясь от накладных расходов на упаковку и распаковку (то же, что и в Java int []вместо Integer []).

Вы можете использовать Array Array для значений NULL), что эквивалентно String [] в Java:

val stringsOrNulls = arrayOfNulls(10) // returns Array
val someStrings = Array(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")

См. Также: Массивы в справочнике по языку

For Strings and other types, you just use Array<*>. The reason IntArray and others exist is to prevent autoboxing.

Итак, int [] относится к IntArray, где Integer [] относится к Array .

Чтобы создать пустой массив строк в Kotlin, вы должны использовать один из следующих шести подходов:

Первый подход:

val empty = arrayOf()

Второй подход:

val empty = arrayOf("","","")

Третий подход:

val empty = Array(3) { null }

Четвертый подход:

val empty = arrayOfNulls(3)

Пятый подход:

val empty = Array(3) { "it = $it" }

Шестой подход:

val empty = Array(0, { _ -> "" })

используйте arrayOf, arrayOfNulls, emptyArray

var colors_1: Array = arrayOf("green", "red", "blue")
var colors_2: Array = arrayOfNulls(3)
var colors_3: Array = emptyArray()

Эти типы существуют для того, чтобы вы могли создавать массивы примитивов, а не упакованные типы. Поскольку String не является примитивом в Java, вы можете просто использовать Array в Kotlin как эквивалент Java String [].

вы тоже можете использовать:

val frases = arrayOf("texto01","texto02 ","anotherText","and ")

например.

Этот пример отлично работает в Android

В kotlin для этого можно использовать лямбда-выражение. Определение конструктора массива Kotlin:

Array(size: Int, init: (Int) -> T)

Что дает:

skillsSummaryDetailLinesArray = Array(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

Или:

skillsSummaryDetailLinesArray = Array(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

В этом примере определение поля было:

private var skillsSummaryDetailLinesArray: Array? = null

Надеюсь, это поможет

Некоторые из распространенных способов создания массива String:

  1. var arr = Array (5) {""}

Это создаст массив из 5 строк с начальными значениями, которые будут пустой строкой.

  1. var arr = arrayOfNulls(5)

Это создаст массив размером 5 с нулевыми начальными значениями. Вы можете использовать строковые данные для изменения массива.

  1. var arr = arrayOf («ноль», «один», «два», «три»)

Когда вы уже знаете содержимое массива, вы можете инициализировать массив напрямую.

  1. Существует простой способ создания многомерного массива * строк.

    var matrix = Array (5) {Array (6) {""}}

    Вот как вы можете создать матрицу с 5 строками и 6 столбцами с начальными значениями пустой строки.

2022 WebDevInsider