RxJava2.x 操作符之 filter


题图:Pixabay License

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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);
}
});

执行结果如下:

1
2
3
4
I/RxJavaOperatorActivity: aLong===6
I/RxJavaOperatorActivity: aLong===7
I/RxJavaOperatorActivity: aLong===8
I/RxJavaOperatorActivity: aLong===9

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

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

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

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

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

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

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

image

本文标题:RxJava2.x 操作符之 filter

文章作者:x-sir

发布时间:2019年05月23日 - 17:20

最后更新:2019年05月23日 - 17:19

原始链接:http://www.x-sir.com/2019/05/23/RxJava2.x 操作符之 filter/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%