In this chapter, we covered combining Observables in various useful ways. Merging is helpful in combining and simultaneously firing multiple Observables and combining their emissions into a single stream. The flatMap() operator is especially critical to know, as dynamically merging Observables derived from emissions opens a lot of useful functionality in RxJava. Concatenation is similar to merging, but it fires off the source Observables sequentially rather than all at once. Combining with ambiguous allows us to select the first Observable to emit and fire its emissions. Zipping allows you to combine emissions from multiple Observables, whereas combine latest combines the latest emissions from each source every time one of them fires. Finally, grouping allows you to split up an Observable into several GroupedObservables,  each with emissions that have a common...
Germany
Slovakia
Canada
Brazil
Singapore
Hungary
Philippines
Mexico
Thailand
Ukraine
Luxembourg
Estonia
Lithuania
Norway
Chile
United States
Great Britain
India
Spain
South Korea
Ecuador
Colombia
Taiwan
Switzerland
Indonesia
Cyprus
Denmark
Finland
Poland
Malta
Czechia
New Zealand
Austria
Turkey
France
Sweden
Italy
Egypt
Belgium
Portugal
Slovenia
Ireland
Romania
Greece
Argentina
Malaysia
South Africa
Netherlands
Bulgaria
Latvia
Australia
Japan
Russia