Grouping
A powerful operation that you can achieve with RxJava is to group emissions by a specified key into separate Observables. This can be achieved by calling the groupBy()
operator, which accepts a lambda mapping each emission to a key. It will then return an Observable<GroupedObservable<K,T>>
, which emits a special type of Observable
called GroupedObservable
. GroupedObservable<K,T>
is just like any other Observable
, but it has the key K
value accessible as a property. It will emit the T
emissions that are mapped for that given key.
For instance, we can use the groupBy()
operator to group emissions for an Observable<String>
by each String's length. We will subscribe to it in a moment, but here is how we declare it:
import io.reactivex.Observable; import io.reactivex.observables.GroupedObservable; public class Launcher { public static void main(String[] args) { Observable<String> source = Observable.just("Alpha", "Beta", "Gamma", "Delta", "Epsilon...