2017-04-20 15 views
3

Observables(RxJava 1)のリストがあります。RxJava - Observableのジップリスト

List<Observable> observableList = new ArrayList<>(); 

それは、少なくとも1観測を含めることができます。それぞれには同じタイプの結果があります。

どのようにすべてのオブザーバブルの結果を圧縮することができますか?

を使用でき

+0

観測とFuncNの反復処理可能になりますジップオーバーロードがあります:http://reactivex.io/RxJava/1.x/javadoc/rx/ Observable.html#zip(java.lang.Iterable、%20rx.functions.FuncN) – akarnokd

答えて

5

(....それは1,2,3,4することができます)私はジップオペレータについて考えたが、それはリストをサポートしていないと私は観測量を知りません静的zip(java.lang.Iterable<? extends Observable<?>> ws,FuncN<? extends R> zipFunction) method

それはObservable Sと(そのcall方法にvarargsパラメータを取る)FuncNIterableをとり、新しい戻さによって省略される結果に対応する放射されたObjectを組み合わせるためにそれを使用する方法であって、zipObservable。あなたができるので、例えば

Observable.zip(observableList, new FuncN(){ 
    public ReturnType call(java.lang.Object... args){ 
     ReturnType result; //to be made 
     //preparatory code for using the args 
     for (Object obj : args){ 
      ReturnType retObj = (ReturnType)obj; 
      //code to use the arg once at a time to combine N of them into one. 
     } 
     return result; 
    } 
}); 
関連する問題