web-dev-qa-db-fra.com

Java ArrayList à Kotlin Array

Existe-t-il un moyen simple de convertir un tableau Java ArrayList en un tableau Kotlin? Le code suivant:

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

donne l'erreur:

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

J'analyse certains JSON et je ne sais pas combien d'éléments je vais finir, mais une fois que je les ai lus, je n'ai plus besoin de modifier les données. J'ai donc pensé y aller. Tableaux Kotlin en tant que type de données.

15
Simon Morgan

Essayez d'utiliser la fonction d'extension toTypedArray, comme:

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

Pourquoi utiliser un tableau? Les tableaux Kotlin peuvent être modifiés, tout comme les tableaux Java. Vous devriez utiliser une liste de Kotlin qui, contrairement à MutableList, est immuable. Pour expliquer pourquoi le code ne se compile pas: toArray renvoie un objet []. Si vous voulez un String [] dans une liste, vous devez utiliser la version toArray qui prend un tableau comme argument. 

4
diesieben07

Convertir ArrayList en Array dans Kotlin

 import Java.util.*

fun main(args: Array<String>) {

    val list = ArrayList<String>()
    list.add("a")
    list.add("b")

    val array = arrayOfNulls<String>(list.size)
    list.toArray(array)

    println(Arrays.toString(array))

}

Sortie : [a, b]

Convertir un tableau en liste dans Kotlin

import Java.util.*

fun main(args: Array<String>) {

    val array = arrayOf("a", "b")
    val list = Arrays.asList(*array)

    println(list)

}

Sortie: [a, b]

0
Suresh Maidaragi