There are a number of operators that will suppress emissions that fail to meet a specified criterion. These operators work by simply not calling the onNext() function downstream for a disqualified emission, and therefore 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 forward.
For instance, you can use filter() to only allow string emissions...