Comment copier correctement une liste (list) en Kotlin : clonage, copie et copie profonde
Bonjour à tous ! Je viens de commencer à apprendre Kotlin et j'ai rencontré un problème inattendu en travaillant avec des listes.
J'ai une liste de nombres `originalList`, et je veux en faire une copie pour modifier la copie sans affecter l'original. J'ai essayé simplement d'assigner une liste à une autre :
```kotlin
fun main() {
val originalList = mutableListOf(1, 2, 3, 4, 5)
val copiedList = originalList
copiedList.add(6)
println("Original: $originalList") // [1, 2, 3, 4, 5, 6] — a changé !
println("Copied: $copiedList") // [1, 2, 3, 4, 5, 6]
}
```
Comme vous pouvez le voir, lorsque je modifie `copiedList`, `originalList` change aussi. Cela se produit parce que la variable `copiedList` fait référence au même objet en mémoire, et non à une nouvelle copie des données.
Je sais qu'en Java, pour copier des listes, on utilise