Avatar ·

¿Cuál es la diferencia entre ArrayList<String>() y mutableListOf<String>() en Kotlin?

¡Hola! Empecé a aprender Kotlin después de Java y noté que para crear una lista mutable se pueden usar dos formas: ```kotlin val list1: ArrayList = ArrayList() val list2: MutableList = mutableListOf() ``` Ambas opciones parecen funcionar igual: puedo agregar, eliminar y modificar elementos. Pero me confunde que en un caso el tipo se especifica explícitamente como `ArrayList`, y en el otro como `MutableList`. Intenté escribir este código: ```kotlin fun processList(list: MutableList) { list.add("Kotlin") } val arrayList = ArrayList() val mutableList = mutableListOf() processList(arrayList) // funciona processList(mutableList) // también funciona ``` Ambas listas se pasan a una función que espera `MutableList`. ¿Significa que son lo mismo? ¿O hay diferencias sutiles en rendimiento, memoria o comportamiento? ¿Quizás `mutableListOf()` no devuelve un `ArrayList`, sino otra implementación? ¿O es pro