RxJava合并没有重复

时间:2016-04-04 23:08:16

标签: java android rx-java

我是RxJava的新手,我正在尝试实现搜索本地数据库和服务器的搜索功能。我希望它合并两个结果并消除重复,任何想法??

2 个答案:

答案 0 :(得分:3)

您可以合并本地和远程结果,并使用toMap来消除重复项。

此外,如果您有更多要求,可以使用collectHashSet(或HashMap)来提供更多控制权:

    Observable<Integer> local = Observable.just(1, 2, 3, 4);
    Observable<Integer> remote = Observable.just(1, 3, 5, 7);
    local.mergeWith(remote)
            .collect(() -> new HashSet<Integer>(), (set, v) -> set.add(v))
            .flatMap(Observable::from)
            .subscribe(System.out::println);

答案 1 :(得分:3)

您可以使用distinct operator