2016-04-04 4 views
4

Я добрая новичок в RxJava, и я пытаюсь реализовать функцию поиска, которая ищет локальный db и сервер. Я бы хотел, чтобы он объединил оба результата и устранил дубликаты, любые идеи?RxJava Объединить без дубликатов

ответ

2

Вы можете объединить локальные и удаленные результаты и использовать 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); 
Смежные вопросы