В каких случаях последовательности лучше чем коллекции

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

Ответ

Последовательности (Sequence) лучше коллекций (List, Set), когда:

  1. Ленивые вычисления – элементы обрабатываются по требованию, а не сразу. Это экономит память.
  2. Большие данные – последовательности не создают промежуточные коллекции при цепочке операций (map, filter).
  3. Бесконечные последовательности – можно генерировать элементы на лету (например, generateSequence).

Пример:

val sequence = (1..1_000_000).asSequence()
    .filter { it % 2 == 0 }  // Ленивая фильтрация
    .map { it * 2 }          // Ленивое преобразование
    .take(10)                // Берём только 10 элементов
    .toList()                // Выполняем все операции

⚠️ Для небольших данных коллекции могут быть быстрее из-за оптимизаций JVM.