Avatar ·

Cómo copiar o clonar una lista en Kotlin: guía completa

¡Hola! Acabo de empezar a aprender Kotlin después de Java y tuve un problema con la copia de listas. En Java solía hacer algo como `new ArrayList<>(originalList)` para crear una copia independiente. Pero en Kotlin noté que una simple asignación `val copy = originalList` no crea una copia, sino solo una referencia al mismo objeto. Probé `originalList.toList()`, pero cuando cambio elementos en la copia, ¿los cambios aún se reflejan en el original? ¿O estoy confundiendo algo? Aquí hay un ejemplo que me confunde: ```kotlin data class Person(val name: String, var age: Int) fun main() { val original = mutableListOf(Person("Alice", 25), Person("Bob", 30)) val copy = original.toList() // ¿esto es una copia? // Intento cambiar (copy as MutableList)[0].age = 26 // Cambio la edad en la "copia" println(original[0].age) // Imprime 26! ¿Por qué el original también cambió? } ``` ¿Por qué `toList()` no crea una copia completamente independiente? ¿Cómo hacer una copia profunda correctamente?