Rxjava学习之过滤操作符—filter、elementAt

来源:互联网 发布:现在淘宝开店还能赚钱吗 编辑:程序博客网 时间:2024/06/03 10:31

1、 filter(Func1)

过滤操作符,只发射满足条件的数据。
这里写图片描述

这里写图片描述

 Observable.just(1, 2, 3, 4, 5, 6)           .filter(integer -> integer > 4)           .subscribe(                integer -> Log.d("TAG", integer + ""));

运行结果:
5
6

2、ofType(Class)

ofType是filter操作符的一个特殊形式。它过滤一个Observable只返回指定类型的数据。
ofType默认不在任何特定的调度器上指定。
这里写图片描述

  Observable.just(1, "String",false,1.3f)        .ofType(String.class)        .subscribe(s -> Log.d("TAG","ofType="+s));

运行结果:
ofType=String

3、ElementAt

定义规则:ElementAt操作符获取原始Observable发射的数据序列指定索引位置的数据项,然后当做自己的唯一数据发射。
这里写图片描述
示例:elementAt根据索引发射原始Observable数据序列对应索引位置的值。
如果你传递的是一个负数,或者原始Observable的数据项数小于index+1,将会抛出一个IndexOutOfBoundsException异常。

 Observable.just(1,2,3,4,5,6)        .elementAt(0)        .subscribe(integer ->       Log.d("TAG","elmentAt->"+integer));

运行结果:
elmentAt->1

4、elementAtOrDefault

      它与elementAt的区别是,如果索引值大于数据项数,它会发射一个默认值(通过额外的参数指定),而不是抛出异常。但是如果你传递一个负数索引值,它仍然会抛出一个IndexOutOfBoundsException异常。

这里写图片描述

0 0