題圖: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!!!我使用過,效果槓槓滴!從此,我們就可以一起愉快的裝逼了!
飛哥帶你去裝逼,一直裝逼到天黑!