¿Cuál es la diferencia entre List y Array en Kotlin? ¿Cuándo usar cada uno?
¡Hola, colegas! Acabo de empezar a estudiar Kotlin y vengo de Java. En Kotlin hay dos tipos similares: `List` y `Array`. Veo que ambos almacenan múltiples elementos, pero no puedo entender cuál es la diferencia clave y cuándo usar cada uno.
Por ejemplo, estoy escribiendo un programa simple para almacenar nombres de estudiantes:
```kotlin
val namesArray = arrayOf("Alice", "Bob", "Charlie")
val namesList = listOf("Alice", "Bob", "Charlie")
```
Ambos funcionan, puedo acceder por índice: `namesArray[0]` y `namesList[0]` — ambos devuelven "Alice". Pero noté que `Array` tiene la propiedad `size`, mientras que `List` tiene `count()`. También puedo cambiar un elemento del array:
```kotlin
namesArray[0] = "Eve" // funciona
namesList[0] = "Eve" // error de compilación
```
¿Por qué sucede esto? Y también escuché que `List` puede ser mutable (`MutableList`), mientras que un array siempre es mutable. Pero entonces, ¿para qué sirve `Array` si `MutableList` hace lo mismo? ¿Y cómo se relaciona esto con el rendimiento? Por favor, aclárenme cuál es la diferencia fundamental.