2016-04-04 32 views
4

Ich bin ein wenig neu zu RxJava und ich versuche, Suchfunktion zu implementieren, die lokale db und den Server durchsucht. Ich möchte es beide Ergebnisse zusammenführen und die Duplikate, irgendwelche Ideen beseitigen?RxJava Merge ohne Duplikate

Antwort

2

Sie können die lokalen und Remote-Ergebnisse zusammenführen und toMap verwenden, um die Duplikate zu entfernen.

Außerdem, wenn Sie mehr Anforderungen haben, können Sie collect und HashSet (oder HashMap) verwenden, die Ihnen mehr Kontrolle geben:

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);