2
我有一個流發射頁面的數據A, B, C, D...
。我可以使用哪個操作符來獲得這樣的流:[A], [A, B], [A, B, C], [A, B, C, D]...
?彙總所有的emited流,並用rxJava徹底排放它們
我知道collect
或toList
但他們只在流的末尾發射一次。
我有一個流發射頁面的數據A, B, C, D...
。我可以使用哪個操作符來獲得這樣的流:[A], [A, B], [A, B, C], [A, B, C, D]...
?彙總所有的emited流,並用rxJava徹底排放它們
我知道collect
或toList
但他們只在流的末尾發射一次。
您可以嘗試'scan'運營商。
的Java 8
你可以得到的String []流以這樣的方式
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(擴大JohnWowUs的答案)
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));