1. 程式人生 > >RxJava2.0過濾操作符(四)

RxJava2.0過濾操作符(四)

過濾型操作符的作用:過濾 或者 篩選 被觀察者傳送的事件  和 觀察者接受的事件

1、根據條件 過濾事件

(1)、Filter()

作用:過濾 特定的條件

例子:


執行結果:


(2)ofType

作用:篩選 特定資料型別資料

例項:


執行結果:


(3)skip()跳關正序某個事件 /  skipLast() 跳過倒敘的某一個事件


執行結果:


(4)、distinct()  /  distinctUntilChanged()

作用:過濾事件序列中重複的事件 /  連續重複的事件

distinct示例:


執行結果:


distinctUntilChanged():去掉連續重複的示例


執行結果:


2、根據 指定事件數量 過濾事件

(1)take:作用:指定觀察者最多能夠接受事件的數量


執行結果:


(2)takeLast

作用:指定觀察者只能接收的最後幾個事件


執行結果:


3、根據指定的時間 過濾條件

(1)throttleFirst 

作用:在某段時間內,只能傳送該段時間內的第一次事件


執行結果:


(2)throttleLast

作用:在某段時間內,只能傳送該段時間內的 最後一次事件


執行結果:


(3)、sample:在某段時間內,只發送該段時間內的最新(最後)的事件,和throttleLast()類似

(4)、throttleWithTimeout() / debounce()

作用:傳送資料事件時,若2次傳送事件的時間間隔 小於 指定的時間,就會丟失前一次的資料,直到指定時間內都沒有新的資料發射才會傳送後一次的資料.


執行結果:


4、根據 指定事件位置 過濾事件

(1)、firstElement  /  lastElement

作用:僅選取第1個元素 或者 最後一個元素


執行結果:



執行結果:


(2)、elementAt

作用:指定接收某一個元素


執行結果:


elementAt() 允許越界


執行結果:


(3)、elementAtOrError

作用:當elementAt()出現越界的時候丟擲的異常


執行結果: