Create a list from another

A different approach by using spread operator. Maybe in some case would be simpler than using + sign or mutableListOf

fun newList(): List<Int>{
    val values = listOf(1,2,3,4,5,6)
    return listOf(7, *values.toTypedArray(), 8, 9)
}

The Kotlin lists have the plus operator overloaded in kotlin-stdlib, so you can add an item to a list:

val values = listOf(1, 2, 3, 4, 5, 6)
return values + 7

There's also an overload that adds another list:

val values = listOf(1, 2, 3, 4, 5, 6)
return listOf(-1, 0) + values + listOf(7, 8)

Note that in both cases a new list is created, and the elements are copied into it.

For MutableList<T> (which has mutating functions, in contrast with List<T>), there is a plusAssign operator implementation, that can be used as follows:

fun newList(): List<Int> {    
    val values = mutableListOf(1, 2, 3, 4, 5, 6)
    values += 7
    values += listOf(8, 9)
    return values
}

Tags:

List

Kotlin