RxJava2.x 操作符之 filter


题图:Pixabay License

哈喽,朋友们,上一篇文章我们学习了 repeate 操作符,今天我们继续来学习 filter 操作符。

我们都知道 filter 是过滤的意思,也就是说这个操作符就是帮助我们来过滤掉一些我们不需要的数据。

举个简单的例子吧,假设上游有个数据源,顺序向下游发送 0-9 十个数字,我们只想打印大于 5 的数字,我们就可以这么写:

 Observable.interval(1, TimeUnit.SECONDS)
    .take(10)
    .filter(new Func1<Long, Boolean>() {
            @Override
            public Boolean call(Long aLong) {
                return aLong > 5;
            }
        })
    .subscribe(new Action1<Long>() {
            @Override
            public void call(Long aLong) {
                LogUtil.i("aLong===" + aLong);
            }
        });

执行结果如下:

I/RxJavaOperatorActivity: aLong===6
I/RxJavaOperatorActivity: aLong===7
I/RxJavaOperatorActivity: aLong===8
I/RxJavaOperatorActivity: aLong===9

结果打印出来的都是大于 5 的数字,当然你还可以设置其他的过滤条件,例如空值等!

好了,今天的学习内容就算完成了,感觉是不是非常简单?如果你学会了就赶紧动手去实践一下吧,说不定你会有新的发现哦!

最后,我和大家分享一下我学习的一些经验或者是见解吧。我们再学习的过程中,可能学的很多东西都是点状的,我们要把学习到的东西学会融会贯通,将他们连接成线即学会相互联系,再将线形成面,再形成体,这样我们学到的知识才能形成一个完整的知识体系,不要只见树叶,不见森林,希望大家在学习的过程中,多思考,多总结!

Ps:扫描下面的二维码,关注「IT大飞说」,回复「加群」,拉你进入兄弟战斗群,最后告诉你们一个小秘密,公号对话框回复「装备01」 送你一件珍藏版的打怪装备,战斗力瞬间可增加 80!!!我使用过,效果杠杠滴!从此,我们就可以一起愉快的装逼了!

飞哥带你去装逼,一直装逼到天黑!

更多干货文章请关注我的微信公众号:
扫一扫关注

另外,我还建了一个免费的知识星球,感兴趣的微信扫码即可加入!

image

发布了138 篇原创文章 · 获赞 168 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/xinpengfei521/article/details/90484145