Rxjava條件和布爾操作符

目錄

1. Rx簡介
2. Rxjava基礎知識
3. Rxjava創(chuàng)建操作符
4. Rxjava的線程操作
5. Rxjava變換過濾操作符
6. Rxjava合并霉猛、鏈接操作符
7. Rxjava條件和布爾操作符

Rxjava條件操作符

條件操作符 作用
amb 給定多個Observable保屯,只讓第一個發(fā)射數(shù)據(jù)的Observable發(fā)射數(shù)據(jù)
defaultIfEmpty 發(fā)射來自原始的Observable的數(shù)據(jù),如果原始Observable沒有發(fā)射數(shù)據(jù)則發(fā)射一個默認數(shù)據(jù)
skipUtil 丟棄原始Observable發(fā)射的數(shù)據(jù),直到第二個Observable發(fā)射了一個數(shù)據(jù)然后發(fā)射原始Observable的剩余數(shù)據(jù)
skipWhile 丟棄原始Observable發(fā)射的數(shù)據(jù)碳抄,直到一個特定的條件為假箫爷,然后發(fā)射原始Observable剩余的數(shù)據(jù)
takeUtile 發(fā)射來自原始Observable的數(shù)據(jù),直到第二個Observable發(fā)射了一個數(shù)據(jù)或一個通知
takeWhile 發(fā)射原始Observable的數(shù)據(jù)硬萍,直到一個特定條件為真窝撵,然后跳過剩余的數(shù)據(jù)。

amb

給兩個或多個Observable襟铭,它只會發(fā)射首先發(fā)射數(shù)據(jù)的Observable的全部數(shù)據(jù)

//輸出結果 1,2,3
Observable.ambArray(
                Observable.just(1,2,3), Observable.just(4,5,6)
        ).subscribe(s -> System.out.println(s));
//給第一個Observable添加延遲碌奉,結果將是 4,5,6
Observable.ambArray(
                Observable.just(1,2,3).delay(1, TimeUnit.SECONDS), Observable.just(4,5,6)
        ).subscribe(s -> System.out.println(s));

skipUtil skipWhile

//過時間4s后,第二個Observable發(fā)射了一個數(shù)據(jù)寒砖,則第一個Observable會發(fā)射剩下的全部數(shù)據(jù)
Observable.intervalRange(1,9, 0, 1 ,TimeUnit.SECONDS) //第一個Observable
                .skipUntil(Observable.timer(4, TimeUnit.SECONDS)) //第二個Observable
                .subscribe(s -> System.out.println(s));

//雖然訂閱了Observable赐劣,但忽略了它的全部數(shù)據(jù),直到skipWhile的條件不成立哩都,則發(fā)射全部剩下的數(shù)據(jù)魁兼。
Observable.just(1,2,3,4,5)
                .skipWhile(s -> s<=2)
                .subscribe(result -> System.out.println(result));

takeUtil takeWhile

他們與skip性質的操作符正好相反

//數(shù)據(jù)正常接受,但當發(fā)射數(shù)據(jù)3時漠嵌,這時候takeUtil中就會發(fā)射一個數(shù)據(jù)咐汞,之后Observable的后續(xù)數(shù)據(jù)就會全部丟棄
//輸出為 1,2,3
Observable.just(1,2,3,2,5)
                .takeUntil(s -> s==3)
                .subscribe(result -> System.out.println(result));
//當數(shù)據(jù)發(fā)送4時盖呼,條件不成立,則會丟棄4及4以后的數(shù)據(jù)
//輸出為 1,23
Observable.just(1,2,3,4,5)
                .takeWhile(s-> s <=3)
                .subscribe(result -> System.out.println(result));

Rxjava布爾操作符化撕。

| 布爾操作符 | 作用|
| - - - - - - - - - - |- - - - - - - - - |
| all | 判斷是否所有數(shù)據(jù)都滿足條件 |
| contains | 判斷Observable發(fā)射的數(shù)據(jù)是否包含一個特定的值 |
| exists几晤, isEmpty | 判斷Observable是否發(fā)射了一個值 |
| sequenceEqual | 判斷兩個Observables發(fā)射的序列是否相等 |

all 與contains

//這里輸出的是 true,判斷結果植阴。
Observable.just(1,2,3)
    .all(i -> i<10)
    .subscribe(s -> System.out.println(s));
//判斷結果 輸出 true 
Observable.just(1,2,3)
                .contains(2)
                .subscribe(s -> System.out.println(s));

sequenceEqual

Observable.sequenceEqual(Observable.just(1,2,3), Observable.just(1,2,3))
                .subscribe(s -> System.out.println(s));
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蟹瘾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子掠手,更是在濱河造成了極大的恐慌憾朴,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喷鸽,死亡現(xiàn)場離奇詭異众雷,居然都是意外死亡,警方通過查閱死者的電腦和手機做祝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門砾省,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人剖淀,你說我怎么就攤上這事纯蛾。” “怎么了纵隔?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵翻诉,是天一觀的道長。 經(jīng)常有香客問我捌刮,道長碰煌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任绅作,我火速辦了婚禮芦圾,結果婚禮上,老公的妹妹穿的比我還像新娘俄认。我一直安慰自己个少,他們只是感情好,可當我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布眯杏。 她就那樣靜靜地躺著夜焦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岂贩。 梳的紋絲不亂的頭發(fā)上茫经,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼卸伞。 笑死抹镊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的荤傲。 我是一名探鬼主播垮耳,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弃酌!你這毒婦竟也來了氨菇?” 一聲冷哼從身側響起儡炼,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤妓湘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后乌询,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榜贴,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年妹田,在試婚紗的時候發(fā)現(xiàn)自己被綠了唬党。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡鬼佣,死狀恐怖驶拱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晶衷,我是刑警寧澤蓝纲,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站晌纫,受9級特大地震影響税迷,放射性物質發(fā)生泄漏。R本人自食惡果不足惜锹漱,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一箭养、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哥牍,春花似錦毕泌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辩诞,卻和暖如春坎弯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工抠忘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撩炊,地道東北人。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓崎脉,卻偏偏與公主長得像拧咳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子囚灼,可洞房花燭夜當晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 記錄RxJava操作符骆膝,方便查詢(2.2.2版本) 英文文檔地址:http://reactivex.io/docu...
    凌云飛魚閱讀 819評論 0 0
  • ReactiveX 系列文章目錄 amb/ambArray/ambWith 兩個方法參數(shù)稍有不同,但用法含義一樣灶体。...
    三流之路閱讀 519評論 0 0
  • 注:只包含標準包中的操作符阅签,用于個人學習及備忘參考博客:http://blog.csdn.net/maplejaw...
    小白要超神閱讀 2,186評論 2 8
  • RxJava操作符圖譜 創(chuàng)建操作符 create 完整創(chuàng)建1個被觀察者對象(Observable) just 快速...
    yswheye閱讀 9,609評論 1 15
  • 一、RxJava操作符概述 RxJava中的操作符就是為了提供函數(shù)式的特性蝎抽,函數(shù)式最大的好處就是使得數(shù)據(jù)處理簡潔易...
    測天測地測空氣閱讀 626評論 0 1