Diferencia entre los tipos de lista y matriz en Kotlin

Cuál es la diferencia entreList yArray tipos?
Parece que puede hacer las mismas operaciones con ellos (bucles, expresión de filtro, etc.), ¿hay alguna diferencia en el comportamiento o el uso?

val names1 = listOf("Joe","Ben","Thomas")
val names2 = arrayOf("Joe","Ben","Thomas")

for (name in names1)
    println(name)
for (name in names2)
    println(name)

Respuestas a la pregunta(3)

Su respuesta a la pregunta