-
Notifications
You must be signed in to change notification settings - Fork 2
Mathematical Operators
This section explains operators that perform mathematical operations on the items emitted by Observables.
-
count( )— counts the number of items emitted by an Observable and emits this count -
sum( )— adds the Integers emitted by an Observable and emits this sum -
sumLongs( )— adds the Longs emitted by an Observable and emits this sum -
sumFloats( )— adds the Floats emitted by an Observable and emits this sum -
sumDoubles( )— adds the Floats emitted by an Observable and emits this sum -
average( )— calculates the average of Integers emitted by an Observable and emits this average -
averageLongs( )— calculates the average of Longs emitted by an Observable and emits this average -
averageFloats( )— calculates the average of Floats emitted by an Observable and emits this average -
averageDoubles( )— calculates the average of Doubles emitted by an Observable and emits this average

The count( ) method returns an Observable that emits a single item: an Integer that represents the total number of items emitted by the source Observable, as shown in the following sample code:
def myObservable = Observable.create({ anObserver ->
anObserver.onNext('Three');
anObserver.onNext('Two');
anObserver.onNext('One');
anObserver.onCompleted();
});
myObservable.count().subscribe(
{ println(it); }, // onNext
{ println("Error encountered"); }, // onError
{ println("Sequence complete"); } // onCompleted
);3
Sequence complete
- RxJS:
count - Linq:
Count - Introduction to Rx: Count

The sum( ) method returns an Observable that adds the Integers emitted by a source Observable and then emits this sum as an Integer, as shown in the following sample code:
def myObservable = Observable.create({ anObserver ->
anObserver.onNext(4);
anObserver.onNext(3);
anObserver.onNext(2);
anObserver.onNext(1);
anObserver.onCompleted();
});
myObservable.sum().subscribe(
{ println(it); }, // onNext
{ println("Error encountered"); }, // onError
{ println("Sequence complete"); } // onCompleted
);10
Sequence complete
There are also specialized "sum" methods for Longs, Floats, and Doubles (sumLongs( ), sumFloats( ), and sumDoubles( )).
- RxJS:
sum - Linq:
Sum - Introduction to Rx: Min, Max, Sum, and Average

The average( ) method returns an Observable that calculates the average of the Integers emitted by a source Observable and then emits this average as an Integer, as shown in the following sample code:
def myObservable = Observable.create({ anObserver ->
anObserver.onNext(4);
anObserver.onNext(3);
anObserver.onNext(2);
anObserver.onNext(1);
anObserver.onCompleted();
});
myObservable.average().subscribe(
{ println(it); }, // onNext
{ println("Error encountered"); }, // onError
{ println("Sequence complete"); } // onCompleted
);2
Sequence complete
There are also specialized "average" methods for Longs, Floats, and Doubles (averageLongs( ), averageFloats( ), and averageDoubles( )).
A Netflix Original Production
Tech Blog | Twitter @NetflixOSS | Twitter @RxJava | Jobs