Какие плюсы и минусы Sequence

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

Ответ

Плюсы:

  • Ленивые вычисления - элементы обрабатываются только при необходимости
  • Поддержка бесконечных последовательностей
  • Экономия памяти - не хранит все элементы сразу
  • Цепочка операций (map, filter и т.д.) выполняется за один проход
  • Совместимость с Kotlin Flow и Java Streams

Минусы:

  • Нет доступа по индексу (не поддерживает RandomAccess)
  • Многократные итерации приводят к повторным вычислениям
  • Некоторые операции (sorted, toList) материализуют всю последовательность

Пример:

val seq = sequence {
    yield(1)
    yieldAll(listOf(2, 3))
}
seq.filter { it > 1 } // ленивая операция
   .forEach { println(it) } // 2, 3