有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

假设我有两条可观测的流

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

共 (1) 个答案

  1. # 1 楼答案

    一种方法是:

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