flatMap()聽起來像是你在找什麼:
// This assumes that generating originalObservable is not under your control
// and is returned from some other API call you are making.
List<Item> originalList = Arrays.asList(new Item(), new Item(), new Item());
Observable<List<Item>> originalObservable = Observable.just(originalList);
Observable<Item> itemObservable =
originalObservable
.flatMap(new Func1<List<Item>, Observable<Item>>() {
@Override
public Observable<Item> call(List<Item> items) {
return Observable.from(items);
}
});
如果你確實有訪問originalList(而不是從其他API調用originalObservable),你可以從使用()來從它創建一個可觀察:
Observable<Item> itemObservable = Observable.from(originalList);
我不知道如何與您的原始序列([A],[B],[C] - > AA,AB,AC,BA,BB,BC ,Ca,Cb,Cc),因爲我不確定小a,b和c來自哪裏。如果它們是獨立的值,不需要大寫A,B和C來生成它們,那麼flatMap()就是你想要的。
Observable<String> result =
Observable
.just("A", "B", "C")
.flatMap(new Func1<String, Observable<String>>() {
@Override
public Observable<String> call(String s) {
return Observable
.just(s + "a", s + "b", s + "c");
}
});
是的,我認爲我解釋得很糟糕 - 我有一系列項目列表,我想要扁平化爲這些列表中連續的項目。看來flatMap可能正是我想要的,我只是誤解了文檔。 – Mavrik 2014-09-04 18:31:50