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()出現越界的時候丟擲的異常
執行結果: