鍍金池/ 教程/ Android/ GroupBy
調度器 Scheduler
Empty/Never/Throw
Replay
這個(gè)頁(yè)面展示了創(chuàng )建Observable的各種方法。
ObserveOn
ReactiveX
TimeInterval
Window
本頁(yè)展示的操作符用于對整個(gè)序列執行算法操作或其它操作,由于這些操作必須等待數據發(fā)射完成(通常也必須緩存這些數據),它們對于非常長(cháng)
IgnoreElements
Distinct
Last
Start
And/Then/When
Switch
創(chuàng )建操作
Materialize/Dematerialize
CombineLatest
Catch
實(shí)現自己的操作符
StringObservable
Map
ConnectableObservable
Using
Take
BlockingObservable
TakeLast
Defer
RxJavaSchedulersHook
First
FlatMap
這個(gè)頁(yè)面的操作符可用于根據條件發(fā)射或變換Observables,或者對它們做布爾運算:
Do
Repeat
Serialize
這個(gè)頁(yè)面展示的操作符可用于過(guò)濾和選擇Observable發(fā)射的數據序列。
這個(gè)頁(yè)面列出了很多用于Observable的輔助操作符
Single
Retry
從錯誤中恢復的技術(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è)頁(yè)面展示了可用于對Observable發(fā)射的數據執行變換操作的各種操作符。
Introduction
rxjava-async
介紹響應式編程
這個(gè)頁(yè)面展示的操作符可用于組合多個(gè)Observables。
ReactiveX
Connect
操作符分類(lèi)
StartWith
Interval
Join
To
Buffer
RefCount
介紹
Observable

GroupBy

GroupBy

將一個(gè)Observable分拆為一些Observables集合,它們中的每一個(gè)發(fā)射原始Observable的一個(gè)子序列

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

GroupBy操作符將原始Observable分拆為一些Observables集合,它們中的每一個(gè)發(fā)射原始Observable數據序列的一個(gè)子序列。哪個(gè)數據項由哪一個(gè)Observable發(fā)射是由一個(gè)函數判定的,這個(gè)函數給每一項指定一個(gè)Key,Key相同的數據會(huì )被同一個(gè)Observable發(fā)射。

RxJava實(shí)現了groupBy操作符。它返回Observable的一個(gè)特殊子類(lèi)GroupedObservable,實(shí)現了GroupedObservable接口的對象有一個(gè)額外的方法getKey,這個(gè)Key用于將數據分組到指定的Observable。

有一個(gè)版本的groupBy允許你傳遞一個(gè)變換函數,這樣它可以在發(fā)射結果GroupedObservable之前改變數據項。

注意:groupBy將原始Observable分解為一個(gè)發(fā)射多個(gè)GroupedObservable的Observable,一旦有訂閱,每個(gè)GroupedObservable就開(kāi)始緩存數據。因此,如果你忽略這些GroupedObservable中的任何一個(gè),這個(gè)緩存可能形成一個(gè)潛在的內存泄露。因此,如果你不想觀(guān)察,也不要忽略GroupedObservable。你應該使用像take(0)這樣會(huì )丟棄自己的緩存的操作符。

如果你取消訂閱一個(gè)GroupedObservable,那個(gè)Observable將會(huì )終止。如果之后原始的Observable又發(fā)射了一個(gè)與這個(gè)Observable的Key匹配的數據,groupBy將會(huì )為這個(gè)Key創(chuàng )建一個(gè)新的GroupedObservable。

groupBy默認不在任何特定的調度器上執行。

上一篇:Connect下一篇:算術(shù)和聚合操作