Функция subList
Функция subList возвращает представление части списка
между указанным начальным индексом (включительно)
и конечным индексом (исключительно). Если начальный
и конечный индекс равны, возвращается пустой список.
Возвращаемый список поддерживается исходным списком,
поэтому изменения в возвращаемом списке отражаются
в исходном списке и наоборот.
Синтаксис
fun <T> List<T>.subList(fromIndex: Int, toIndex: Int): List<T>
Параметры
fromIndex - начальный индекс (включительно)
toIndex - конечный индекс (исключительно)
Пример
Получим подсписок с элементами от индекса 1 до 4:
val list = listOf('a', 'b', 'c', 'd', 'e')
val sub = list.subList(1, 4)
println(sub)
Результат выполнения кода:
['b', 'c', 'd']
Пример
Получим подсписок с элементами от начала до индекса 3:
val list = listOf(1, 2, 3, 4, 5)
val sub = list.subList(0, 3)
println(sub)
Результат выполнения кода:
[1, 2, 3]
Пример
Получим подсписок с элементами от индекса 2 до конца списка:
val list = listOf('a', 'b', 'c', 'd', 'e')
val sub = list.subList(2, list.size)
println(sub)
Результат выполнения кода:
['c', 'd', 'e']
Пример
Получим пустой подсписок с равными индексами:
val list = listOf(1, 2, 3, 4, 5)
val sub = list.subList(2, 2)
println(sub)
Результат выполнения кода:
[]
Пример
Изменения в подсписке отражаются в исходном списке:
val mutableList = mutableListOf('a', 'b', 'c', 'd', 'e')
val sub = mutableList.subList(1, 4)
sub[0] = 'x'
println("Original list: $mutableList")
println("Sublist: $sub")
Результат выполнения кода:
Original list: [a, x, c, d, e]
Sublist: [x, c, d]
Пример
Изменения в исходном списке отражаются в подсписке:
val mutableList = mutableListOf(1, 2, 3, 4, 5)
val sub = mutableList.subList(1, 4)
mutableList[2] = 99
println("Original list: $mutableList")
println("Sublist: $sub")
Результат выполнения кода:
Original list: [1, 2, 99, 4, 5]
Sublist: [2, 99, 4]
Исключения
Функция выбрасывает IndexOutOfBoundsException,
если fromIndex или toIndex выходят за пределы списка.
Функция выбрасывает IllegalArgumentException,
если fromIndex больше toIndex.