RxJava通过匹配属性值来连接可观察流

RxJava通过匹配属性值来连接可观察流,java,rx-java,reactive-programming,Java,Rx Java,Reactive Programming,假设我有两条可观测的流 Observable<Book> books; Observable<Movie> movies; 可观察书籍; 可观察的电影; 当它们有一个匹配的属性时,我如何连接它们?类似于下面的psudo代码: Observable<BookMoviePair> pairs = books.join(movies) .where((book, movie) -> book.getId() == movie.getId()))

假设我有两条可观测的流

Observable<Book> books;
Observable<Movie> movies;
可观察书籍;
可观察的电影;
当它们有一个匹配的属性时,我如何连接它们?类似于下面的psudo代码:

Observable<BookMoviePair> pairs = books.join(movies)
    .where((book, movie) -> book.getId() == movie.getId()))
    .return((book, movie) -> new BookMoviePair(book, movie));
observeable pairs=books.join(电影)
.where((书,电影)->book.getId()==movie.getId())
.return((书、电影)->新书电影对(书、电影));
一种方法:

Observable<BookMoviePair> pairs =
        books.flatMap(book -> movies
                .first(movie -> movie.getId() == book.getId())
                .map(movie -> new BookMoviePair(book, movie)));
可观测对=
书籍.平面地图(书籍->电影)
.first(movie->movie.getId()==book.getId())
.map(电影->新书电影对(书、电影));