题图: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!!!我使用过,效果杠杠滴!从此,我们就可以一起愉快的装逼了!
飞哥带你去装逼,一直装逼到天黑!
更多干货文章请关注我的微信公众号:
扫描二维码关注公众号,回复:
9127752 查看本文章
另外,我还建了一个免费的知识星球,感兴趣的微信扫码即可加入!