В чем разница между List и Sequence

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

Ответ

List и Sequence в Kotlin различаются по способу обработки элементов:

  1. Вычисления

    • List выполняет операции (например, map, filter) энергично (eagerly) — сразу для всех элементов.
    • Sequenceлениво (lazy), вычисляя элементы только при необходимости (например, при вызове toList() или forEach).
  2. Производительность
    Sequence эффективнее для цепочек операций (меньше промежуточных коллекций) и больших данных.
    List проще и быстрее для небольших коллекций.

Пример:

val list = listOf(1, 2, 3).map { it * 2 } // Сразу создает [2, 4, 6]
val seq = sequenceOf(1, 2, 3).map { it * 2 } // Не вычисляется до вызова toList()