我有2种数据类型(TvShows和MovieResponse),我想将它们合并为一种Movie类型,最后我将使用List来使用Recycler.ViewAdapter。如何将方法改为函数式编程?
谢谢)
private List<Movie> buildResponse(SearchResponse.Events events) {
List<Movie> result = new ArrayList<>();
if (events.getMovies().size() > 0) {
// add title
result.add(new Movie(getString(R.string.section_movie), HEADER_TYPE));
for (Movie movie : events.getMovies()) {
result.add(movie);
}
}
if (events.getTvshows().size() > 0) {
result.add(new Movie(getString(R.string.section_tvshows), HEADER_TYPE));
for (Movie tv : events.getTvshows()) {
result.add(movie);
}
}
return result;
}
-TvShow和MovieResponse扩展了电影,这就是我可以迭代它们的原因。 - 我使用Java7
答案 0 :(得分:0)
使用Observable.from()创建电影&#39; TvShows和MovieResponse的对象。然后使用Observable.zip(),这样你就可以获得tvShow和movie的对,在映射函数中使它们成为单个电影。 当您获得最终的Observable源时,请使用Observable.defer(() - &gt; source).toBlocking()来获取合并电影的列表。 你还需要添加第一个电影(标题),这样做才能使用 Observable.concat(Observable.just(header),source)