Java ArrayList в Kotlin Array

Есть ли простой способ преобразования Java ArrayList в массив Kotlin? Следующий код:

fun test(): Array<String> {
  val elems = ArrayList<String>()
  return elems.toArray()
}

дает ошибку:

main.kt:2:15: error: unresolved reference: ArrayList
  val elems = ArrayList<String>()
              ^

Я разбираю JSON и не знаю, сколько элементов у меня получится, но как только я прочитал их, мне не нужно каким-либо образом модифицировать данные, поэтому я подумал, d перейдите с массивами Kotlin в качестве типа данных.

Ответы

Ответ 1

Зачем использовать массив? Kotlin Arrays изменяются так же, как Java-массивы. Вы должны использовать Kotlin List, который, в отличие от MutableList, является неизменным. Что касается того, почему код не компилируется: toArray возвращает Object [], если вы хотите использовать String [] из списка, вам нужно использовать версию toArray, которая принимает Array в качестве аргумента.

Ответ 2

Попробуйте использовать функцию расширения toTypedArray, например:

fun test(): Array<String> {
    val elems = arrayListOf<String>()
    return elems.toTypedArray()
}

Ответ 3

вы можете использовать список kotlin, это легко использовать, почему преобразование java-массива в kotlin-массив обе изменяемы.

попробуйте это....

fun learnlist(){
 var stringList= listOf<String>("a","b","c","d")
    for (st in stringList)
        print(st)

    var intlist= listOf<Int>(1,2,3,4,5)
    for(i in intlist)
        print(i)

}