RxJava:合并 BehaviorSubjects

RxJava: merge BehaviorSubjects

如何合并两个 BehaviorSubject,使它们表现得像一个 BehaviorSubject

我有这样的东西:

class Solution {
    public static void main(String[] args) {
        Subject<List<Integer>> left = BehaviorSubject.createDefault(Arrays.asList(1, 2, 3));
        Subject<List<Integer>> right = BehaviorSubject.createDefault(Arrays.asList(4, 5, 6));
        Single<List<Integer>> merged = left.mergeWith(right).reduce(new ArrayList<Integer>(), (l, r) -> {
            List<Integer> merged1 = new ArrayList<>(l.size() + r.size());
            merged1.addAll(l);
            merged1.addAll(r);
            return merged1;
        });
        merged.subscribe(System.out::println);
    }
}

我希望得到一些东西 [1, 2, 3, 4, 5, 6],但是 subscribe 没有打印任何东西。

这应该有效 ;)

Subject<List<Integer>> left = BehaviorSubject.createDefault(Arrays.asList(1, 2, 3));
Subject<List<Integer>> right = BehaviorSubject.createDefault(Arrays.asList(4, 5, 6));
Observable<List<Integer>> merged = Observable.zip(left, right, (value1, value2) -> {
    List<Integer> list = new ArrayList<>();
    list.addAll(value1);
    list.addAll(value2);
    return list;
});
merged.subscribe(System.out::println);