五、RxJava条件all,contains,any

本文通过实例演示了如何使用RxJava的all、contains和any操作符进行条件判断。all用于检查所有元素是否满足特定条件,contains则判断集合中是否存在指定元素,而any用于确认是否有任何一个元素符合指定条件。这些操作符简化了传统条件语句的编写,提高了代码的可读性和简洁性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.项目地址

在MainActivity5

2.讲解

有了这个中间操作后,下游都是一个boolean参数:
在这里插入图片描述

1.all

表示全部都:
以前的写法与用RxJava:下面的存在一个包含“cc”,所以

String v1="1";
        String v2="2";
        String v3="3";
        String v4="cc";
        //all全部都
        //平常写法
        if (v1.equals("cc")||v2.equals("cc")||v3.equals("cc")||v4.equals("cc")) {
            Log.d(TAG, "r1: "+false);
        }else {
            Log.d(TAG, "r1: "+true);
        }
        Log.d(TAG, "r1: ------------------------------all-------------------------");
        Observable.just(v1,v2,v3,v4)
                .all(new Predicate<String>() {
                    @Override
                    public boolean test(String s) throws Throwable {
                        return !s.equals("cc");//全部都不等于cc
                    }
                })
                .subscribe(new Consumer<Boolean>() {
                    @Override
                    public void accept(Boolean aBoolean) throws Throwable {
                        Log.d(TAG, "accept: "+aBoolean);
                    }
                });

2.contains

包含一个就返回true:下面包含“4”,所以返回true

//contains 是否存在一个包含某某
        Observable.just("1","2","3","4","5","6")
                .contains("4")
                .subscribe(new Consumer<Boolean>() {
                    @Override
                    public void accept(Boolean aBoolean) throws Throwable {
                        Log.d(TAG, "accept: "+aBoolean);
                    }
                });

3.any

任意一个就返回true:

//any 存在一个等于……
        Observable.just("1","2","3","4","5","6")
                .any(new Predicate<String>() {
                    @Override
                    public boolean test(String s) throws Throwable {
                        return s.equals("3");
                    }
                })
                .subscribe(new Consumer<Boolean>() {
                    @Override
                    public void accept(Boolean aBoolean) throws Throwable {
                        Log.d(TAG, "accept: "+aBoolean);//true
                    }
                });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值