Comment copier une liste dans Kotlin?
j'utilise
val selectedSeries = mutableListOf<String>()
selectedSeries.addAll(series)
Y a-t-il un moyen plus facile?
Comment copier une liste dans Kotlin?
j'utilise
val selectedSeries = mutableListOf<String>()
selectedSeries.addAll(series)
Y a-t-il un moyen plus facile?
Vous pouvez utiliser
Liste -> toList ()
Tableau -> toArray ()
ArrayList -> toArray ()
MutableList -> toMutableList ()
Exemple:
val array = arrayListOf("1", "2", "3", "4")
val arrayCopy = array.toArray() // copy array to other array
Log.i("---> array " , array?.count().toString())
Log.i("---> arrayCopy " , arrayCopy?.count().toString())
array.removeAt(0) // remove first item in array
Log.i("---> array after remove" , array?.count().toString())
Log.i("---> arrayCopy after remove" , arrayCopy?.count().toString())
journal d'impression:
array: 4
arrayCopy: 4
array after remove: 3
arrayCopy after remove: 4
Si votre liste contient la classe de données Kotlin , vous pouvez le faire.
selectedSeries = ArrayList(series.map { it.copy() })
Je peux venir avec deux alternatives:
1. val selectedSeries = mutableListOf<String>().apply { addAll(series) }
2. val selectedSeries = mutableListOf(*series.toTypedArray())
Mise à jour: avec le nouveau Type de moteur d'Inférence(opt-in Kotlin 1.3), Nous pouvons omettre le paramètre de type générique dans le 1er exemple et avoir ceci:
1. val selectedSeries = mutableListOf().apply { addAll(series) }
FYI.La façon d'opt-dans la nouvelle Inférence est - kotlinc -Xnew-inference ./SourceCode.kt
pour la ligne de commande, ou kotlin { experimental { newInference 'enable'}
de Gradle. Pour plus d'info sur le nouveau Type d'Inférence, regardez cette vidéo: KotlinConf 2018 Nouveau Type d'Inférence et de la Langue des Fonctionnalités par Svetlana Isakova, en particulier à l'inférence pour les constructeurs' à 30'
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.