Rxjava温故知新(五)------RxJava条件型操作符

1.前言

条件型操作符,判断类型,向下游发送布尔类型的数据
  • all
  • any
  • contains
  • isEmpty

2.条件型操作符

2.1 all

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sqwCIQ3m-1571797880276)(8.png)]

说明

all条件操作符,类似于And(与)条件,上游发射的所有数据都会经过判断, 一个条件为false 最后结果就是false 全部为true,最后结果才会为true

使用Rxjava的做法例子

	User user1 = new User("111", 1);
    User user2 = new User("333", 3);
    User user3 = new User("999", 9);
    User user4 = new User("222", 2);
    User user5 = new User("888", 8);
    User user6 = new User("777", 7);

    List<User> users = new ArrayList<>();
    users.add(user1);
    users.add(user2);
    users.add(user3);
    users.add(user4);
    users.add(user5);
    users.add(user6);

    Observable.fromIterable(users)
            .all(new Predicate<User>() {
                @Override
                public boolean test(User user) throws Exception {
                    return "000".equals(user.name);
                }
            }).subscribe(new Consumer<Boolean>() {
        @Override
        public void accept(Boolean aBoolean) throws Exception {
            System.out.println("aBoolean = [" + aBoolean + "]");
        }
    });

输出结果:

I/System.out: aBoolean = [false]

2.1 any

说明

any操作符和all恰好相反,类似Or(或)条件 一个条件为true,结果为true,所有条件为false,结果为false

2.3 contains

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNABvZAU-1571797880277)(7.png)]

说明:

contains 验证要发射的数据里面是否有包含 contains 里面的值,如果有则返回true

例子(判断列表中是否包含某一元素)

 	User user1 = new User("111", 1);
    User user2 = new User("333", 3);
    User user3 = new User("999", 9);
    User user4 = new User("222", 2);
    User user5 = new User("888", 8);
    User user6 = new User("777", 7);
    User user7 = new User("000", 7);

    List<User> users = new ArrayList<>();
    users.add(user1);
    users.add(user2);
    users.add(user3);
    users.add(user4);
    users.add(user5);
    users.add(user6);
    users.add(user7);

    Observable.fromIterable(users)
            .contains(user5).subscribe(new Consumer<Boolean>() {
        @Override
        public void accept(Boolean aBoolean) throws Exception {
            Log.i(TAG, "accept: "+aBoolean);
        }
    });

输出结果

I/MainActivity: accept: true

2.3 isEmpty (较少使用)

说明

如果发送的是一个empty,则下游接收的时候是ture,否则为false

例子

    Observable.empty()
            .isEmpty().subscribe(new Consumer<Boolean>() {
        @Override
        public void accept(Boolean aBoolean) throws Exception {
            Log.i(TAG, "accept: "+aBoolean);
        }
    });

输出结果

I/MainActivity: accept: true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值