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) 过滤操作
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 之前没有了解过Rxjava的童鞋,建议先阅读《Rxjava 从入门到开发》这篇文章,对入门比较有帮助。 Debou...
- 前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎...