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!!!我使用過,效果槓槓滴!從此,我們就可以一起愉快的裝逼了!

飛哥帶你去裝逼,一直裝逼到天黑!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章