Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 类型列表的Rxjava过滤器可观察_List_Filter_Observable - Fatal编程技术网

List 类型列表的Rxjava过滤器可观察

List 类型列表的Rxjava过滤器可观察,list,filter,observable,List,Filter,Observable,我有一个名为Post的自定义对象。帖子有正文和标题,两个字符串 我有一个翻新实例,它返回一个可观察的 我如何在Observable上使用.filter,以便根据标题以t开头的单个Post对象进行过滤 到目前为止,这就是我所拥有的,但我无法理解 fetchData() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .filter

我有一个名为Post的自定义对象。帖子有正文和标题,两个字符串

我有一个翻新实例,它返回一个可观察的

我如何在Observable上使用.filter,以便根据标题以t开头的单个Post对象进行过滤

到目前为止,这就是我所拥有的,但我无法理解

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(...);
希望有帮助