Rxjava(3) 过滤操作

Skip(2) 忽略前两条数据进行发送数据
SkipLast(2) 忽略最后两条数据进行发送数据
Take(2) 只发送前两条数据
TakeLast(2) 只发送最后两条数据


private void first_last(){
        //只发射第一项(或者满足某个条件的第一项)数据
        Observable.fromIterable(mData).first("pp").subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                Log.e("qwer",s);
            }
        });

        //只发射最后一项(或者满足某个条件的最后一项)数据
        Observable.fromIterable(mData).last("pp").subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                Log.e("qwer",s);
            }
        });
    }

    private void filter(){
        //根据条件过滤
        Observable.fromIterable(mData).filter(new Predicate<String>() {
            @Override
            public boolean test(String s) throws Exception {
                return Integer.valueOf(s) > 4;
            }
        }).subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {

            }
        });
    }

    private void elementAt(){
        //发送指定位置的数据
        Observable.fromIterable(mData).elementAt(2).subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                Log.e("qwer",s);
            }
        });
        //发送指定位置的数据,位置不存在,就发送默认的数据
        Observable.fromIterable(mData).elementAt(8,"king").subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                Log.e("qwer",s);
            }
        });
    }

    @SuppressLint("CheckResult")
    private void distinct(){
        /*
         * 去重,重复的数据将不做处理
         */
        Observable.fromIterable(mData).distinct().subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                Log.e("qwer",s);
            }
        });
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容