RxJava:合并BehaviorSubjects

时间:2017-08-28 09:05:11

标签: android java-8 rx-java rx-java2

如何合并两个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不打印任何内容。

1 个答案:

答案 0 :(得分:5)

这应该有用;)

   Origin Total
   Email   520
   Phone   300
   Social  100