There are operators that suppress emissions that do not meet a specified criterion. These operators work by simply not calling the onNext() function downstream for a disqualified emission, and therefore it does not go down the chain to Observer. We have already seen the filter() operator, which is probably the most common suppressing operator. We will start with this one.
Suppressing operators
filter()
The filter() operator accepts Predicate<T> for a given Observable<T>. This means that you provide it a lambda that qualifies each emission by mapping it to a Boolean value, and emissions with false will not go downstream.
For instance, you can use filter() to only allow string emissions that are not five characters...