基本上我有
Observable<T1> obs1;
Observable<T2> obs2;
Observable<T3> obs3;
并且T1,T2,T3都延伸了T,其具有getId() - &gt;我想对两个Observable都应用groupBy。
我查看了zip / combineLatest,但它们使用了最新的值(我也不想使用toMap)。
UPD :基本上你可能会认为obs1是一个Observable.fromIterable(map.values()),obs2 = Observable.fromIterable(map.values())等等我真正想要的是组合每个键的值。所以它可能是:键#1:(null,valOfT2,null),键#2:(valOfT1,valOfT2,valOfT3)等。我可能可以使用toMap然后只需要联合3个映射的键集然后设置迭代地得到值。
答案 0 :(得分:0)
只需连接两个并使用toMultimap:
Observable.concat(
Observable.fromIterable(map1.values()),
Observable.fromIterable(map2.values())
)
.toMultimap(v -> v.getId())