【发布时间】:2016-04-04 23:08:15
【问题描述】:
我对 RxJava 有点陌生,我正在尝试实现搜索本地数据库和服务器的搜索功能。我希望它合并两个结果并消除重复项,有什么想法吗??
【问题讨论】:
我对 RxJava 有点陌生,我正在尝试实现搜索本地数据库和服务器的搜索功能。我希望它合并两个结果并消除重复项,有什么想法吗??
【问题讨论】:
您可以使用distinct operator。
【讨论】:
您可以合并本地和远程结果,并使用toMap 消除重复。
此外,如果您有更多要求,您可以使用collect 和HashSet(或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);
【讨论】: