In Kotlin, you can convert arrays to lists and lists to arrays using standard library functions.
Array to List
Use toList():
val array = arrayOf("a", "b", "c")
val list: List<String> = array.toList()
println(list) // [a, b, c]
If you want a mutable list, use toMutableList():
val array = arrayOf("a", "b", "c")
val mutableList: MutableList<String> = array.toMutableList()
mutableList.add("d")
println(mutableList) // [a, b, c, d]
List to Array
Use toTypedArray():
val list = listOf("a", "b", "c")
val array: Array<String> = list.toTypedArray()
println(array.contentToString()) // [a, b, c]
Primitive Arrays
Kotlin has special primitive array types like IntArray, DoubleArray, and BooleanArray.
IntArray to List
val intArray = intArrayOf(1, 2, 3)
val list: List<Int> = intArray.toList()
println(list) // [1, 2, 3]
List<Int> to IntArray
Use toIntArray():
val list = listOf(1, 2, 3)
val intArray: IntArray = list.toIntArray()
println(intArray.contentToString()) // [1, 2, 3]
Other primitive conversions work similarly:
val doubles: List<Double> = listOf(1.1, 2.2, 3.3)
val doubleArray: DoubleArray = doubles.toDoubleArray()
val booleans: List<Boolean> = listOf(true, false)
val booleanArray: BooleanArray = booleans.toBooleanArray()
Important Note: asList()
For object arrays, you can also use asList():
val array = arrayOf("a", "b", "c")
val list = array.asList()
The difference is:
val array = arrayOf("a", "b", "c")
val copiedList = array.toList()
val backedList = array.asList()
toList()creates a new list copy.asList()returns a list backed by the original array.
Example:
val array = arrayOf("a", "b", "c")
val list = array.asList()
array[0] = "z"
println(list) // [z, b, c]
So in most cases, use:
array.toList()
list.toTypedArray()
And for primitive types:
intArray.toList()
list.toIntArray()
