asReversed
Returns a reversed read-only view of the original List. All changes made in the original list will be reflected in the reversed one.
import samples.assertPrints
fun main(args: Array<String>) {
//sampleStart
val original = mutableListOf('a', 'b', 'c', 'd', 'e')
val originalReadOnly = original as List<Char>
val reversed = originalReadOnly.asReversed()
println(original) // [a, b, c, d, e]
println(reversed) // [e, d, c, b, a]
// changing the original list affects its reversed view
original.add('f')
println(original) // [a, b, c, d, e, f]
println(reversed) // [f, e, d, c, b, a]
original[original.lastIndex] = 'z'
println(original) // [a, b, c, d, e, z]
println(reversed) // [z, e, d, c, b, a]
//sampleEnd
}
@JvmName("asReversedMutable") fun <T> MutableList<T>.asReversed(): MutableList<T>
Returns a reversed mutable view of the original mutable List. All changes made in the original list will be reflected in the reversed one and vice versa.
import samples.assertPrints
fun main(args: Array<String>) {
//sampleStart
val original = mutableListOf(1, 2, 3, 4, 5)
val reversed = original.asReversed()
println(original) // [1, 2, 3, 4, 5]
println(reversed) // [5, 4, 3, 2, 1]
// changing the reversed view affects the original list
reversed.add(0)
println(original) // [0, 1, 2, 3, 4, 5]
println(reversed) // [5, 4, 3, 2, 1, 0]
// changing the original list affects its reversed view
original[2] = -original[2]
println(original) // [0, 1, -2, 3, 4, 5]
println(reversed) // [5, 4, 3, -2, 1, 0]
//sampleEnd
}