【问题标题】:RxJava Merge without duplicates没有重复的 RxJava 合并
【发布时间】:2016-04-04 23:08:15
【问题描述】:

我对 RxJava 有点陌生,我正在尝试实现搜索本地数据库和服务器的搜索功能。我希望它合并两个结果并消除重复项,有什么想法吗??

【问题讨论】:

    标签: java android rx-java


    【解决方案1】:

    您可以使用distinct operator

    【讨论】:

      【解决方案2】:

      您可以合并本地和远程结果,并使用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);
      

      【讨论】:

        猜你喜欢
        • 2010-11-08
        • 2018-10-27
        • 2021-10-17
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 2019-01-28
        • 2012-04-17
        • 1970-01-01
        相关资源
        最近更新 更多