上一篇文章介绍了rxjava的基本用法,和一些常用的操作符,以及rxjava的链式操作带来的好处。由于rxjava非常的强大,让我如此的痴迷,我打算写五篇文章,专门讲解rxjava 常见的操作符和用法,敬请期待。这篇文章主要讲解过滤操作符。
1.distinct操作符
过滤掉重复的数据项,只让还没有发送过数据项通过。
1 |
|
rx.Observable.just(“1”,”2”,”3”)
.elementAt(1)
.subscribe(new Action1
@Override
public void call(String s) {
Log.e(TAG,s);
}
});
rx.Observable.just("1","2","3")
.elementAtOrDefault(11,"11111")
.subscribe(new Action1<String>() {//只发射第二个元素
@Override
public void call(String s) {
Log.e(TAG,s);
}
});
1 |
|
rx.Observable.just(“1”,”2”,”3”)
.first()
.subscribe(new Action1
@Override
public void call(String s) {
Log.e(TAG,s);
}
});
rx.Observable.just(1,2,3)
.first(new Func1<Integer, Boolean>() {
@Override
public Boolean call(Integer integer) {
if(integer>2) return true;
return false;
}
})
.subscribe(new Action1
@Override
public void call(Integer integer) {
Log.e(TAG,integer+””);
}
});
1 |
|
rx.Observable.just(1,2,3,4)
.last().subscribe(new Action1
@Override
public void call(Integer integer) {
Log.e(TAG,integer+””);
}
});
1 |
|
rx.Observable.interval(300, TimeUnit.MILLISECONDS)
.sample(2,TimeUnit.SECONDS)
.subscribe(new Action1
@Override
public void call(Long aLong) {
Log.e(TAG,aLong+””);
}
});
1 |
|
rx.Observable.just(1,2,4,5,6)
.skip(2)
.subscribe(new Action1
@Override
public void call(Integer integer) {
Log.e(TAG,integer+””);
}
});
*运行结果:*
>4
>
>5
>
>6
前面2项数据跳过不发射。
所有的过滤操作符:

好了,今天的讲解了过滤操作符,写了这篇文章相信你很快就会理解。
过滤操作符不止这些,另外还有很多其他的过滤操作符,需要你们自己一个一个的摸索了。感谢大家,如果觉得可以点个赞吧,哈哈……^_^