常用转换操作符
toList、toSortedList、toMap等
实例与功能介绍
1. toList操作符
代码实例
Observable observable = Observable.just(3,1,2);
observable = observable.toList();
Action1 action1 = new Action1<List<Integer>>() {
@Override
public void call(List<Integer> list) {
for (Integer num:list){
LogShowUtil.addLog("RxJava","结果: "+num,true);
}
}
};
结果
结果: 3
结果: 1
结果: 2
功能:将发送多项数据且每一项数据调用onNext方法的Observable发送的多项数据组成一个List,然后调用一次onNext方法传递这个列表。
2. toSortedList操作符
代码实例
Observable observable = Observable.just(3,1,2);
observable = observable.toSortedList();
Action1 action1 = new Action1<List<Integer>>() {
@Override
public void call(List<Integer> list) {
for (Integer num:list){
LogShowUtil.addLog("RxJava","结果: "+num,true);
}
}
};
结果
结果: 1
结果: 2
结果: 3
功能:功能和toList类似,只是会把产生的列表排序。
3. toMap操作符
代码实例
RxJavaMapTest.SwordMan s1 = new RxJavaMapTest.SwordMan("韦一笑","A");
RxJavaMapTest.SwordMan s2 = new RxJavaMapTest.SwordMan("张三丰","SS");
RxJavaMapTest.SwordMan s3 = new RxJavaMapTest.SwordMan("周芷若","S");
Observable observable = Observable.just(s1,s2,s3);
observable = observable.toMap(new Func1<RxJavaMapTest.SwordMan,String>() {
@Override
public String call(RxJavaMapTest.SwordMan swordMan) {
return swordMan.mLevel;
}
});
Action1 action1 = new Action1<Map<String,RxJavaMapTest.SwordMan>>() {
@Override
public void call(Map<String,RxJavaMapTest.SwordMan> manMap) {
LogShowUtil.addLog("RxJava","SS: "+manMap.get("SS").mName,true);
}
};
结果
SS: 张三丰
功能:收集原始Observable发送的所有数据到一个Map,然后发送这个Map。
网友评论