私はデータページA, B, C, D...
を放出するストリームを持っています。どのような演算子を使ってこのようなストリームを取得できますか:[A], [A, B], [A, B, C], [A, B, C, D]...
?すべてのエミッタされたストリームを集約し、rxJavaを使ってそれらをinmidiatlyで出力します。
私はcollect
またはtoList
を知っていますが、ストリームの最後に1回だけ送信します。
私はデータページA, B, C, D...
を放出するストリームを持っています。どのような演算子を使ってこのようなストリームを取得できますか:[A], [A, B], [A, B, C], [A, B, C, D]...
?すべてのエミッタされたストリームを集約し、rxJavaを使ってそれらをinmidiatlyで出力します。
私はcollect
またはtoList
を知っていますが、ストリームの最後に1回だけ送信します。
'scan'オペレーターを試すことができます。
のJava 8
あなたは、このように[]文字列のストリームを得ることができる:(JohnWowUsの答えを拡大する)
List<String> array = Arrays.asList("A","B","C","D");
String[] st ={""};
Stream<String[]> stream = array.stream().map(x -> (st[0]+=x).split("\\B"));
//print it
stream.forEach(s -> System.out.println(Arrays.toString(s)));
RX JAVA
List<String> array = Arrays.asList("A","B","C","D");
Func2<String,String,String> function = new Func2<String,String,String>(){
@Override
public String call(String paramT1, String paramT2) {
return paramT1 + paramT2;
}
};
Observable<String> scan = Observable.from(array).scan(function);
scan.forEach(x-> System.out.println(x));