Функция subList

Функция subList возвращает представление части списка между указанным начальным индексом (включительно) и конечным индексом (исключительно). Если начальный и конечный индекс равны, возвращается пустой список. Возвращаемый список поддерживается исходным списком, поэтому изменения в возвращаемом списке отражаются в исходном списке и наоборот.

Синтаксис

kotlinfun <T> List<T>.subList(fromIndex: Int, toIndex: Int): List<T>

Параметры

fromIndex - начальный индекс (включительно)

toIndex - конечный индекс (исключительно)

Пример

Получим подсписок с элементами от индекса 1 до 4:

kotlinval list = listOf('a', 'b', 'c', 'd', 'e')
val sub = list.subList(1, 4)
println(sub)

Результат выполнения кода:

kotlin['b', 'c', 'd']

Пример

Получим подсписок с элементами от начала до индекса 3:

kotlinval list = listOf(1, 2, 3, 4, 5)
val sub = list.subList(0, 3)
println(sub)

Результат выполнения кода:

kotlin[1, 2, 3]

Пример

Получим подсписок с элементами от индекса 2 до конца списка:

kotlinval list = listOf('a', 'b', 'c', 'd', 'e')
val sub = list.subList(2, list.size)
println(sub)

Результат выполнения кода:

kotlin['c', 'd', 'e']

Пример

Получим пустой подсписок с равными индексами:

kotlinval list = listOf(1, 2, 3, 4, 5)
val sub = list.subList(2, 2)
println(sub)

Результат выполнения кода:

kotlin[]

Пример

Изменения в подсписке отражаются в исходном списке:

kotlinval mutableList = mutableListOf('a', 'b', 'c', 'd', 'e')
val sub = mutableList.subList(1, 4)

sub[0] = 'x'
println("Original list: $mutableList")
println("Sublist: $sub")

Результат выполнения кода:

kotlinOriginal list: [a, x, c, d, e]
Sublist: [x, c, d]

Пример

Изменения в исходном списке отражаются в подсписке:

kotlinval mutableList = mutableListOf(1, 2, 3, 4, 5)
val sub = mutableList.subList(1, 4)

mutableList[2] = 99
println("Original list: $mutableList")
println("Sublist: $sub")

Результат выполнения кода:

kotlinOriginal list: [1, 2, 99, 4, 5]
Sublist: [2, 99, 4]

Исключения

Функция выбрасывает IndexOutOfBoundsException, если fromIndex или toIndex выходят за пределы списка.

Функция выбрасывает IllegalArgumentException, если fromIndex больше toIndex.

Смотрите также

  • функцию take,
    которая возвращает первые n элементов списка
  • функцию takeLast,
    которая возвращает последние n элементов списка
  • функцию drop,
    которая возвращает список без первых n элементов
  • функцию slice,
    которая возвращает список элементов по указанным индексам