RxAndroid操作符(四)

RxAndroid操作符就是
对集合的操作
1.RxAndroid接收一个集合对象,对其中数据一个一个观察
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);
//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会根据集合的数量调用对应次数的subscriber.onNext方法,把集合中的数据一个一个输出
Observable.from(integers)
//被观察者一创建就指定了观察者,如此就不用在后面进行注册绑定了
//如果用不到onError,onCompleted方法,就创建Action1 ,其中的call == onNext
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer integer) {
     System.out.println("onNext : " + integer);
}
});

2. RxAndroid 接收一个集合对象 , 对整个集合进行操作
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);
//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会把这个集合整个输出一次
Observable.just(integers)
         //被观察者一创建就指定了观察者,如此就不用在后面进行注册绑定了
//如果用不到onError,onCompleted方法,就创建Action1 ,其中的call == onNext
.subscribe(new Action1<List<Integer>>() {
@Override
public void call(List<Integer> integers) {
    System.out.println(integers);
}
});

3.RxAndroid接收一个集合对象,对其中数据进行过滤
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);
//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会根据集合的数量调用对应次数的subscriber.onNext方法,把集合中的数据一个一个输出
Observable.from(integers)
//对集合数据进行过滤,只发送符合条件的事件
.filter(new Func1<Integer, Boolean>() {
@Override
public Boolean call(Integer integer) {
     return integer < 4;
}
})
//如果用不到onError,onCompleted方法,就创建Action1 ,其中的call == onNext
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer integer) {
     System.out.println("onNext : " + integer);
}
});

4. RxAndroid接收一个集合对象,对其中数据进行转换
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);
//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会根据集合的数量调用对应次数的subscriber.onNext方法,把集合中的数据一个一个输出
Observable.from(integers)
//对集合数据进行转换,参数 1.代表了原数据类型(转换前) 2.代表了要转换最终结果的数据类型(转换后)
//提示:可以把流转换成bitmap,文件,String... String字符串或数据库Cursor转换为Bean类等
.map(new Func1<Integer, String>() {
@Override
public String call(Integer integer) {
     return integer.toString();
}
})
//如果用不到onError,onCompleted方法,就创建Action1 ,其中的call == onNext
.subscribe(new Action1<String>() {
@Override
public void call(String s) {
     System.out.println(s);
}
});

5.RxAndroid把拿到的数个集合,进行拆分观察
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> integers1 = Arrays.asList(6, 7, 8);
List<Integer> integers2 = Arrays.asList(9, 10);
//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会把这个集合整个输出一次
Observable.just(integers, integers1, integers2)//这里会输出3,但经过修改要他发送10
//这样使用,以后可以减少双层for循环
.flatMap(new Func1<List<Integer>, Observable<?>>() {
//将一个数据再转变为一个观察者
@Override
public Observable<?> call(List<Integer> integers) {
     return Observable.from(integers);
}
})
/* .subscribe(new Action1<List<Integer>>() {
@Override
public void call(List<Integer> integers) {
     System.out.println(integers);
}
});*/
.subscribe(new Action1<Object>() {
@Override
public void call(Object o) {
     System.out.println(o);
}
});
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值