Что такое asSequence

«Что такое asSequence» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

asSequence преобразует коллекцию в ленивую последовательность (Sequence), которая вычисляет элементы по мере необходимости. Это полезно для цепочек операций (filter, map), т.к. избегает создания промежуточных коллекций.

Пример:

val list = listOf(1, 2, 3, 4, 5)
val result = list.asSequence()
    .filter { it % 2 == 0 }
    .map { it * 2 }
    .toList() // [4, 8]

Отличие от коллекций:

  • Последовательности обрабатывают элементы по одному (лениво), коллекции — сразу все (эagerly).
  • Для небольших данных разница незначительна, но для больших или сложных операций Sequence эффективнее.