02_RxJava转换操作符代码示例
来源:互联网 发布:知错改错不认错的人 编辑:程序博客网 时间:2024/05/18 00:42
package com.gdc.rxjava;import java.util.List;import rx.Observable;import rx.Observer;import rx.Subscriber;import rx.functions.Func1;import rx.functions.Func2;import rx.observables.GroupedObservable;public class TransformingDemo {public static void main(String[] args) {// testMap();// testFlatMap();// testGroupBy();// testBuffer();testScan();}private static void testMap() {// 将整型数据转换成String类型输出Observable.just(1, 2, 3).map(new Func1<Integer, String>() {@Overridepublic String call(Integer arg0) {return arg0 + "";}}).subscribe(new Subscriber<String>() {@Overridepublic void onCompleted() {System.out.println("onCompleted()");}@Overridepublic void onError(Throwable arg0) {System.out.println("onError():" + arg0);}@Overridepublic void onNext(String arg0) {System.out.println("onNext():" + arg0);}});}private static void testFlatMap() {Observable.just(1, 2, 3, 4, 5).flatMap(new Func1<Integer, Observable<? extends String>>() {@Overridepublic Observable<? extends String> call(Integer arg0) {return Observable.just(arg0 + "");}}).subscribe(new Subscriber<String>() {@Overridepublic void onCompleted() {System.out.println("onCompleted()");}@Overridepublic void onError(Throwable arg0) {System.out.println("onError():" + arg0);}@Overridepublic void onNext(String arg0) {System.out.println("onNext():" + arg0);}});}private static void testGroupBy() {Observable.just(1, 2, 3, 4, 5).groupBy(new Func1<Integer, Integer>() {@Overridepublic Integer call(Integer arg0) {// 分组规则return arg0 % 2;}}).subscribe(new Observer<GroupedObservable<Integer, Integer>>() {@Overridepublic void onCompleted() {System.out.println("onCompleted()");}@Overridepublic void onError(Throwable arg0) {System.out.println("onError():" + arg0);}@Overridepublic void onNext(GroupedObservable<Integer, Integer> arg0) {arg0.subscribe(new Subscriber<Integer>() {@Overridepublic void onCompleted() {}@Overridepublic void onError(Throwable arg0) {}@Overridepublic void onNext(Integer data) {System.out.println("group:" + arg0.getKey() + " data:" + data);}});}});}private static void testBuffer() {// 随机生成5个数字,一次性订阅两次,然后打印出来,通过运行得知,只需要3次即可以把数据全部打印出来Observable.range(1, 5).buffer(2).subscribe(new Subscriber<List<Integer>>() {@Overridepublic void onCompleted() {System.out.println("onCompleted()");}@Overridepublic void onError(Throwable arg0) {System.out.println("onError():" + arg0);}@Overridepublic void onNext(List<Integer> arg0) {System.out.println("onNext():" + arg0);}});}private static void testScan() {// 1到5的和Observable.range(1, 5).scan(new Func2<Integer, Integer, Integer>() {@Overridepublic Integer call(Integer sum, Integer arg1) {// sum:当前数据的和,arg1:每一次需要累加的数据return sum + arg1;}}).subscribe(new Subscriber<Integer>() {@Overridepublic void onCompleted() {System.out.println("onCompleted()");}@Overridepublic void onError(Throwable arg0) {System.out.println("onError():" + arg0);}@Overridepublic void onNext(Integer arg0) {System.out.println("onNext():" + arg0);}});}}
阅读全文
0 0
- 02_RxJava转换操作符代码示例
- 01_RxJava操作符示例代码
- 03_RxJava 过滤型操作符(Filtering)代码示例
- 04_RxJava 组合操作符示例
- java逻辑操作符代码示例
- BOS操作SQL代码示例
- JS操作cookies示例代码
- 文件夹操作监听示例代码
- java操作文件示例代码
- JQuery -- Dom操作, 示例代码
- PHP操作xml示例代码
- PHP操作xml示例代码
- solr基本操作代码示例
- solr基本操作代码示例
- java文件操作代码示例
- php操作mysqli(示例代码)
- Avro文件操作示例代码
- Python 操作csv 代码示例
- 【Android】AndroidStudio2.2.3 切换到AndroidStudio3.0之后问题处理记录
- 对一致性hash算法的理解
- 数据库设计 Step by Step (3)——基本ER模型构件
- vi的命令
- Android BLE 蓝牙学习总结(一):手机作为周边BluetoothGattServer的实现
- 02_RxJava转换操作符代码示例
- 手把手交大家在mac上用VMWare虚拟机装win7
- os.x浏览器常用快捷键
- js-先判断是否是内网IP
- 移植u-boot-2012.04----支持nand启动
- 查找算法之哈希查找
- Android studio3.0 com.android.tools.aapt2.Aapt2Exception: AAPT2 error
- iptables导致linux关机错误的解决方法
- CentOS 7.4下使用yum安装MySQL