Convert Observable<List<Car>> to a sequence of Observable<Car> in RxJava

Giorgio picture Giorgio · Apr 16, 2015 · Viewed 37.7k times · Source

Given a list of cars (List<Car> cars), I can do:

Observable.just(cars); //returns an Observable that emits one List<Car>
Observable.from(cars); //returns an Observable that emits a squence of Car

Is there a way I can go from an Observable of a List<Car> to a sequence of Observable<Car>?

Something like a from without parameters

Obserable.just(cars).from()

Answer

Egor Neliuba picture Egor Neliuba · Apr 16, 2015

You can map an Observable<List<Car>> to Observable<Car> like so:

yourListObservable.flatMapIterable(x -> x)

Note that flatMapping might not preserve the order of the source observable. If the order matters to you, use concatMapIterable. Read here for more details.