List 类型列表的Rxjava过滤器可观察
我有一个名为Post的自定义对象。帖子有正文和标题,两个字符串 我有一个翻新实例,它返回一个可观察的 我如何在Observable上使用.filter,以便根据标题以t开头的单个Post对象进行过滤 到目前为止,这就是我所拥有的,但我无法理解List 类型列表的Rxjava过滤器可观察,list,filter,observable,List,Filter,Observable,我有一个名为Post的自定义对象。帖子有正文和标题,两个字符串 我有一个翻新实例,它返回一个可观察的 我如何在Observable上使用.filter,以便根据标题以t开头的单个Post对象进行过滤 到目前为止,这就是我所拥有的,但我无法理解 fetchData() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .filter
fetchData()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.filter(new Predicate<List<Post>>() {
@Override
public boolean test(List<Post> posts) throws Exception {
for (Post p : posts){
if (p.getTitle().startsWith("t"))
return true;
}
return false;
}
})
.subscribe(getPostObserver());
您要做的是首先将列表的排放分解为每个帖子的单独排放。您可以通过平面映射列表来实现,如下所示:
Observable.just(Arrays.asList(
new Post("post #1", "this is the first post!"),
new Post("post #2", "this is the second post!"),
new Post("post #3", "this is the third post!")
))
.flatMap(list -> {
// turn the single emission of a list of Posts into a stream of
// many emissions of Posts...
return Observable.fromIterable(list);
})
.filter(post -> {
// apply filtering logic...
return true;
})
.subscribe(...);
希望有帮助