Skip to content

Instantly share code, notes, and snippets.

@anitaa1990
Created August 18, 2018 15:51
Show Gist options
  • Save anitaa1990/27061ee33dc05ebf9341f37a3cc71b0f to your computer and use it in GitHub Desktop.
Save anitaa1990/27061ee33dc05ebf9341f37a3cc71b0f to your computer and use it in GitHub Desktop.
/*
* We will create an Observable with range of 1 to 10 numbers.
* We use the groupBy operator to emit only even numbers from the list.
* The output will be 2,4,6,8,10
*/
Observable.range(1, 10)
.groupBy(new Function<Integer, Boolean>() {
@Override
public Boolean apply(Integer integer) {
return (integer % 2 == 0) ? true : false;
}
})
.subscribe(new Observer<GroupedObservable<Boolean, Integer>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(GroupedObservable<Boolean, Integer> booleanIntegerGroupedObservable) {
if(booleanIntegerGroupedObservable.getKey()) {
booleanIntegerGroupedObservable.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Integer integer) {
System.out.println("onNext: " + integer);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment