在线二区人妖系列_国产亚洲欧美日韩在线一区_国产一级婬片视频免费看_精品少妇一区二区三区在线

鍍金池/ 教程/ Android/ 算術(shù)和聚合操作
調(diào)度器 Scheduler
Empty/Never/Throw
Replay
這個(gè)頁面展示了創(chuàng)建Observable的各種方法。
ObserveOn
ReactiveX
TimeInterval
Window
本頁展示的操作符用于對整個(gè)序列執(zhí)行算法操作或其它操作,由于這些操作必須等待數(shù)據(jù)發(fā)射完成(通常也必須緩存這些數(shù)據(jù)),它們對于非常長
IgnoreElements
Distinct
Last
Start
And/Then/When
Switch
創(chuàng)建操作
Materialize/Dematerialize
CombineLatest
Catch
實(shí)現(xiàn)自己的操作符
StringObservable
Map
ConnectableObservable
Using
Take
BlockingObservable
TakeLast
Defer
RxJavaSchedulersHook
First
FlatMap
這個(gè)頁面的操作符可用于根據(jù)條件發(fā)射或變換Observables,或者對它們做布爾運(yùn)算:
Do
Repeat
Serialize
這個(gè)頁面展示的操作符可用于過濾和選擇Observable發(fā)射的數(shù)據(jù)序列。
這個(gè)頁面列出了很多用于Observable的輔助操作符
Single
Retry
從錯誤中恢復(fù)的技術(shù)
Sample
Merge
算術(shù)和聚合操作
Range
Timestamp
RxJava Issues
From
Subscribe
Subject
Delay
Skip
SubscribeOn
Filter
按字母順序排列的全部操作符列表
Timeout
Scan
onError
Zip
RxJava文檔和教程
Publish
ElementAt
第一個(gè)例子
SkipLast
Just
Timer
Debounce
GroupBy
條件和布爾操作
這個(gè)頁面展示了可用于對Observable發(fā)射的數(shù)據(jù)執(zhí)行變換操作的各種操作符。
Introduction
rxjava-async
介紹響應(yīng)式編程
這個(gè)頁面展示的操作符可用于組合多個(gè)Observables。
ReactiveX
Connect
操作符分類
StartWith
Interval
Join
To
Buffer
RefCount
介紹
Observable

算術(shù)和聚合操作

Average

計(jì)算原始Observable發(fā)射數(shù)字的平均值并發(fā)射它

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/average.c.png" alt="average" />

Average操作符操作符一個(gè)發(fā)射數(shù)字的Observable,并發(fā)射單個(gè)值:原始Observable發(fā)射的數(shù)字序列的平均值。

這個(gè)操作符不包含在RxJava核心模塊中,它屬于不同的rxjava-math模塊。它被實(shí)現(xiàn)為四個(gè)操作符:averageDouble, averageFloat, averageInteger, averageLong

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/average.f.png" alt="average" />

如果原始Observable不發(fā)射任何數(shù)據(jù),這個(gè)操作符會拋異常:IllegalArgumentException

Min

發(fā)射原始Observable的最小值

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/min.c.png" alt="min" />

Min操作符操作一個(gè)發(fā)射數(shù)值的Observable并發(fā)射單個(gè)值:最小的那個(gè)值。

RxJava中,min屬于rxjava-math模塊。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/min.png" alt="min" />

min接受一個(gè)可選參數(shù),用于比較兩項(xiàng)數(shù)據(jù)的大小,如果最小值的數(shù)據(jù)超過一項(xiàng),min會發(fā)射原始Observable最近發(fā)射的那一項(xiàng)。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/minBy.png" alt="minBy" />

minBy類似于min,但是它發(fā)射的不是最小值,而是發(fā)射Key最小的項(xiàng),Key由你指定的一個(gè)函數(shù)生成。

Max

發(fā)射原始Observable的最大值

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/max.c.png" alt="max" />

Max操作符操作一個(gè)發(fā)射數(shù)值的Observable并發(fā)射單個(gè)值:最大的那個(gè)值。

RxJava中,max屬于rxjava-math模塊。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/max.png" alt="max" />

max接受一個(gè)可選參數(shù),用于比較兩項(xiàng)數(shù)據(jù)的大小,如果最大值的數(shù)據(jù)超過一項(xiàng),max會發(fā)射原始Observable最近發(fā)射的那一項(xiàng)。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/maxBy.png" alt="maxBy" />

maxBy類似于max,但是它發(fā)射的不是最大值,而是發(fā)射Key最大的項(xiàng),Key由你指定的一個(gè)函數(shù)生成。

Count

計(jì)算原始Observable發(fā)射物的數(shù)量,然后只發(fā)射這個(gè)值

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/count.c.png" alt="count" />

Count操作符將一個(gè)Observable轉(zhuǎn)換成一個(gè)發(fā)射單個(gè)值的Observable,這個(gè)值表示原始Observable發(fā)射的數(shù)據(jù)的數(shù)量。

如果原始Observable發(fā)生錯誤終止,Count不發(fā)射數(shù)據(jù)而是直接傳遞錯誤通知。如果原始Observable永遠(yuǎn)不終止,Count既不會發(fā)射數(shù)據(jù)也不會終止。

RxJava的實(shí)現(xiàn)是countcountLong

示例代碼


String[] items = new String[] { "one", "two", "three" };
assertEquals( new Integer(3), Observable.from(items).count().toBlocking().single() );

Sum

計(jì)算Observable發(fā)射的數(shù)值的和并發(fā)射這個(gè)和

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/sum.c.png" alt="sum" />

Sum操作符操作一個(gè)發(fā)射數(shù)值的Observable,僅發(fā)射單個(gè)值:原始Observable所有數(shù)值的和。

RxJava的實(shí)現(xiàn)是sumDouble, sumFloat, sumInteger, sumLong,它們不是RxJava核心模塊的一部分,屬于rxjava-math模塊。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/sum.f.png" alt="sum.f" />

你可以使用一個(gè)函數(shù),計(jì)算Observable每一項(xiàng)數(shù)據(jù)的函數(shù)返回值的和。

StringObservable類(這個(gè)類不是RxJava核心模塊的一部分)中有一個(gè)stringConcat操作符,它將一個(gè)發(fā)射字符串序列的Observable轉(zhuǎn)換為一個(gè)發(fā)射單個(gè)字符串的Observable,后者這個(gè)字符串表示的是前者所有字符串的連接。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/St.join.png" alt="St.join" />

StringObservable類還有一個(gè)join操作符,它將一個(gè)發(fā)射字符串序列的Observable轉(zhuǎn)換為一個(gè)發(fā)射單個(gè)字符串的Observable,后者這個(gè)字符串表示的是前者所有字符串以你指定的分界符連接的結(jié)果。

Concat

不交錯的發(fā)射兩個(gè)或多個(gè)Observable的發(fā)射物

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/concat.c.png" alt="concat" />

Concat操作符連接多個(gè)Observable的輸出,就好像它們是一個(gè)Observable,第一個(gè)Observable發(fā)射的所有數(shù)據(jù)在第二個(gè)Observable發(fā)射的任何數(shù)據(jù)前面,以此類推。

直到前面一個(gè)Observable終止,Concat才會訂閱額外的一個(gè)Observable。注意:因此,如果你嘗試連接一個(gè)"熱"Observable(這種Observable在創(chuàng)建后立即開始發(fā)射數(shù)據(jù),即使沒有訂閱者),Concat將不會看到也不會發(fā)射它之前發(fā)射的任何數(shù)據(jù)。

在ReactiveX的某些實(shí)現(xiàn)中有一種ConcatMap操作符(名字可能叫concat_all, concat_map, concatMapObserver, for, forIn/for_in, mapcat, selectConcatselectConcatObserver),他會變換原始Observable發(fā)射的數(shù)據(jù)到一個(gè)對應(yīng)的Observable,然后再按觀察和變換的順序進(jìn)行連接操作。

StartWith操作符類似于Concat,但是它是插入到前面,而不是追加那些Observable的數(shù)據(jù)到原始Observable發(fā)射的數(shù)據(jù)序列。

Merge操作符也差不多,它結(jié)合兩個(gè)或多個(gè)Observable的發(fā)射物,但是數(shù)據(jù)可能交錯,而Concat不會讓多個(gè)Observable的發(fā)射物交錯。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/concat.png" alt="concat" />

RxJava中的實(shí)現(xiàn)叫concat。

還有一個(gè)實(shí)例方法叫concatWith,這兩者是等價(jià)的:Observable.concat(a,b)a.concatWith(b)

Reduce

按順序?qū)bservable發(fā)射的每項(xiàng)數(shù)據(jù)應(yīng)用一個(gè)函數(shù)并發(fā)射最終的值

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/reduce.c.png" alt="reduce" />

Reduce操作符對原始Observable發(fā)射數(shù)據(jù)的第一項(xiàng)應(yīng)用一個(gè)函數(shù),然后再將這個(gè)函數(shù)的返回值與第二項(xiàng)數(shù)據(jù)一起傳遞給函數(shù),以此類推,持續(xù)這個(gè)過程知道原始Observable發(fā)射它的最后一項(xiàng)數(shù)據(jù)并終止,此時(shí)Reduce返回的Observable發(fā)射這個(gè)函數(shù)返回的最終值。

在其它場景中,這種操作有時(shí)被稱為累積,聚集壓縮,折疊,注射等。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/reduce.png" alt="reduce" />

注意如果原始Observable沒有發(fā)射任何數(shù)據(jù),reduce拋出異常IllegalArgumentException。

reduce默認(rèn)不在任何特定的調(diào)度器上執(zhí)行。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/reduceSeed.png" alt="reduce" />

還有一個(gè)版本的reduce額外接受一個(gè)種子參數(shù)。注意傳遞一個(gè)值為null的種子是合法的,但是與不傳種子參數(shù)的行為是不同的。如果你傳遞了種子參數(shù),并且原始Observable沒有發(fā)射任何數(shù)據(jù),reduce操作符將發(fā)射這個(gè)種子值然后正常終止,而不是拋異常。

提示:不建議使用reduce收集發(fā)射的數(shù)據(jù)到一個(gè)可變的數(shù)據(jù)結(jié)構(gòu),那種場景你應(yīng)該使用collect。

http://wiki.jikexueyuan.com/project/rx-docs/images/operators/collect.png" alt="collect" />

collectreduce類似,但它的目的是收集原始Observable發(fā)射的所有數(shù)據(jù)到一個(gè)可變的數(shù)據(jù)結(jié)構(gòu),collect生成的這個(gè)Observable會發(fā)射這項(xiàng)數(shù)據(jù)。它需要兩個(gè)參數(shù):

  1. 一個(gè)函數(shù)返回可變數(shù)據(jù)結(jié)構(gòu)
  2. 另一個(gè)函數(shù),當(dāng)傳遞給它這個(gè)數(shù)據(jù)結(jié)構(gòu)和原始Observable發(fā)射的數(shù)據(jù)項(xiàng)時(shí),適當(dāng)?shù)匦薷臄?shù)據(jù)結(jié)構(gòu)。

collect默認(rèn)不在任何特定的調(diào)度器上執(zhí)行。

上一篇:GroupBy下一篇:RxJavaSchedulersHook