The Kotlin Array class offers asList(), toList(), and toMutableList() methods. The first two methods both return a
The list created with asList keeps a reference to the original Array.
The list created with toList/toMutableList is backed by a copy of the original Array.
asList
The asList function creates a list that reuses the same Array instance, which implies that changes to the original array also have impact on the List:
val arr = arrayOf(1, 2, 3)
val l1 = arr.asList()
arr[0] = 4
println(l1) // [4, 2, 3]
toList
This isn't the case for toList/toMutableList since the array is copied:
val arr = arrayOf(1, 2, 3)
val l2 = arr.toList()
arr[0] = 4
println(l2) // [1, 2, 3]
The Kotlin source code can be found here.