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

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

Scan

Scan

連續(xù)地對數(shù)據(jù)序列的每一項應(yīng)用一個函數(shù),然后連續(xù)發(fā)射結(jié)果

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

Scan操作符對原始Observable發(fā)射的第一項數(shù)據(jù)應(yīng)用一個函數(shù),然后將那個函數(shù)的結(jié)果作為自己的第一項數(shù)據(jù)發(fā)射。它將函數(shù)的結(jié)果同第二項數(shù)據(jù)一起填充給這個函數(shù)來產(chǎn)生它自己的第二項數(shù)據(jù)。它持續(xù)進(jìn)行這個過程來產(chǎn)生剩余的數(shù)據(jù)序列。這個操作符在某些情況下被叫做accumulator。

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

RxJava實現(xiàn)了scan操作符。

示例代碼:


Observable.just(1, 2, 3, 4, 5)
    .scan(new Func2<Integer, Integer, Integer>() {
        @Override
        public Integer call(Integer sum, Integer item) {
            return sum + item;
        }
    }).subscribe(new Subscriber<Integer>() {
        @Override
        public void onNext(Integer item) {
            System.out.println("Next: " + item);
        }

        @Override
        public void onError(Throwable error) {
            System.err.println("Error: " + error.getMessage());
        }

        @Override
        public void onCompleted() {
            System.out.println("Sequence complete.");
        }
    });

輸出

Next: 1
Next: 3
Next: 6
Next: 10
Next: 15
Sequence complete.

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

有一個scan操作符的變體,你可以傳遞一個種子值給累加器函數(shù)的第一次調(diào)用(Observable發(fā)射的第一項數(shù)據(jù))。如果你使用這個版本,scan將發(fā)射種子值作為自己的第一項數(shù)據(jù)。注意:傳遞null作為種子值與不傳遞是不同的,null種子值是合法的。

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

上一篇:Window下一篇:Timer