美文网首页
RxJava学习笔记(2)转换Observable

RxJava学习笔记(2)转换Observable

作者: jack_do | 来源:发表于2024-07-28 15:02 被阅读0次

Map: 可以将一种数据类型,转换成另一种数据类型。

int a = 123; Observable.just(a).map(new Func1() { @Override public String call(Integer integer) { return String.valueOf(integer); } }).subscribe(new Subscriber() {

@Override

public void onCompleted() {

System.out.println("onCompleted");

}

@Override

public void onError(Throwable arg0) {

System.out.println("onError");

}

@Override

public void onNext(String arg0) {

System.out.println("onNext-> " + arg0);

}

});

运行结果:

onNext-> 123    onCompleted

FlatMap:FlatMap将一个发射数据的Observable变换为多个Observables,然后将它们发射的数据合并后放进一个单独的Observable

Observable.just(1,2,3,4,5).flatMap(new Func1>() {@Overridepublic Observable? extends Stringcall(Integer arg0) {return Observable.just(arg0+"");}}).subscribe(new Subscriber() {

@Override

public void onCompleted() {

System.out.println("onCompleted");

}

@Override

public void onError(Throwable arg0) {

System.out.println("onError");

}

@Override

public void onNext(String arg0) {

System.out.println("onNext-> " + arg0);

}

});

运行结果:

onNext-> 1

onNext-> 2

onNext-> 3

onNext-> 4

onNext-> 5

onCompleted

GroupBy:GroupBy操作符将原始Observable分拆为一些Observables集合,它们中的每一个发射原始Observable数据序列的一个子序列。哪个数据项由哪一个Observable发射是由一个函数判定的,这个函数给每一项指定一个Key,Key相同的数据会被同一个Observable发射。

Observable.just(1,2,3,4,5).groupBy(new Func1() {@Overridepublic Integer call(Integer arg0) {return arg0%2;}}).subscribe(new Observer>() {@Overridepublic void onCompleted() {}@Overridepublic void onError(Throwable arg0) {}@Overridepublic void onNext(GroupedObservablearg0) {arg0.subscribe(new Subscriber() {

@Override

public void onCompleted() {

System.out.println("onCompleted->");

}

@Override

public void onError(Throwable arg0) {

}

@Override

public void onNext(Integer data) {

System.out.println("onNext->"+ arg0.getKey() + "data:"+data);

}

});

}

});

运行结果:

onNext->1data:1

onNext->0data:2

onNext->1data:3

onNext->0data:4

onNext->1data:5

onCompleted->

onCompleted->

相关文章

网友评论

      本文标题:RxJava学习笔记(2)转换Observable

      本文链接:https://www.haomeiwen.com/subject/iiktyttx.html