Что такое flatMap

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

Ответ

flatMap — это оператор в RxJava, который преобразует каждый элемент потока в новый поток, а затем объединяет все эти потоки в один.

Особенности:

  • Порядок элементов не гарантируется (если нужен порядок — используйте concatMap).
  • Подходит для асинхронных операций (например, сетевых запросов).

Пример:

Observable.just("user1", "user2", "user3")
    .flatMap { userName -> 
        api.fetchUserDetails(userName).toObservable()  
    }
    .subscribe { userDetails -> 
        println(userDetails) 
    }

Здесь для каждого имени пользователя выполняется запрос fetchUserDetails, а результаты объединяются в один поток.