2016-03-13 10 views
5

Diciamo che ho due flussi osservabiliRxJava uniscono flussi osservabili abbinando valore dell'attributo

Observable<Book> books; 
Observable<Movie> movies; 

Come posso aderire a questi su quando hanno un attributo che corrisponde? Qualcosa come il codice psudo di seguito:

Observable<BookMoviePair> pairs = books.join(movies) 
    .where((book, movie) -> book.getId() == movie.getId())) 
    .return((book, movie) -> new BookMoviePair(book, movie)); 

risposta

3

Un modo per farlo:

Observable<BookMoviePair> pairs = 
     books.flatMap(book -> movies 
       .first(movie -> movie.getId() == book.getId()) 
       .map(movie -> new BookMoviePair(book, movie))); 
Problemi correlati