В чем разница между функциями map в Kotlin

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

Ответ

map в Kotlin работает с коллекциями и преобразует элементы, применяя лямбда-функцию к каждому элементу. Возвращает новый список с результатами.

val numbers = listOf(1, 2, 3)
val squared = numbers.map { it * it } // [1, 4, 9]

map у Flow (из Kotlin Coroutines) асинхронно преобразует элементы потока, возвращая новый Flow с преобразованными данными.

flowOf(1, 2, 3)
    .map { it * it }
    .collect { println(it) } // 1, 4, 9

Разница:

  • Для коллекций — синхронная обработка, возвращает List.
  • Для Flow — асинхронная, работает внутри корутин, возвращает Flow.