Skip(2) 忽略前两条数据进行发送数据
SkipLast(2) 忽略最后两条数据进行发送数据
Take(2) 只发送前两条数据
TakeLast(2) 只发送最后两条数据
private void first_last(){
//只发射第一项(或者满足某个条件的第一项)数据
Observable.fromIterable(mData).first("pp").subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.e("qwer",s);
}
});
//只发射最后一项(或者满足某个条件的最后一项)数据
Observable.fromIterable(mData).last("pp").subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.e("qwer",s);
}
});
}
private void filter(){
//根据条件过滤
Observable.fromIterable(mData).filter(new Predicate<String>() {
@Override
public boolean test(String s) throws Exception {
return Integer.valueOf(s) > 4;
}
}).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
}
});
}
private void elementAt(){
//发送指定位置的数据
Observable.fromIterable(mData).elementAt(2).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.e("qwer",s);
}
});
//发送指定位置的数据,位置不存在,就发送默认的数据
Observable.fromIterable(mData).elementAt(8,"king").subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.e("qwer",s);
}
});
}
@SuppressLint("CheckResult")
private void distinct(){
/*
* 去重,重复的数据将不做处理
*/
Observable.fromIterable(mData).distinct().subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.e("qwer",s);
}
});
}
Rxjava(3) 过滤操作
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 之前没有了解过Rxjava的童鞋,建议先阅读《Rxjava 从入门到开发》这篇文章,对入门比较有帮助。 Debou...
- 前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎...