RxJava 1.x from()和just()用法、区别和举例
来源:互联网 发布:淘宝卖点文案 编辑:程序博客网 时间:2024/05/17 04:17
RxJava 1.x 中的 Observable.from 和 Observable.just 用于将Java 面向对象中的数据转换为 RxJava 中的数据单元。
一、from
RxJava 1.x from用于转换多个数据,比如 ArrayList等包含多个数据的数组或者列表。
RxJava 1.x 包含了5个 Observable.from 的重载方法:
public static <T> Observable<T> from(Iterable <? extends T> iterable)public static <T> Observable<T> from(T[] array)public static <T> Observable<T> from(Future<? extends T> future)public static <T> Observable<T> from(Future<? extends T> future, long timeout, TimeUnit unit) public static <T> Observable<T> from(Future<? extends T> future, Scheduler scheduler)
二、just
RxJava 1.x 包含了10个 Observable.just 的重载方法:
RxJava 1.x 中的 Observable.just 用于创建仅有一个的数据对象。
public static <T> Observable<T> just(final T value)public static <T> Observable<T> just(T t1, T t2)public static <T> Observable<T> just(T t1, T t2, T t3)public static <T> Observable<T> just(T t1, T t2, T t3, T t4)public static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5)public static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6)public static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7)public static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8)public static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9)public static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9, T t10)
三、from和just的区别
from和just的区别
- 1、from用于转换多个数据,比如 ArrayList等包含多个数据的数组或者列表;
- 2、而 just 只用于处理单个的数据。
会不会有人有疑问?just 明明提供了10个重载的方法,最多可以接受10个参数啊!
四、from和just的相互转换
如果from的转换数组中只包含一个数据,就是just的情况。
如果just 多于一个数据,就是from的情况。
看看源代码就一目了然:
1、from 遇到只包含一个数据的时候,会使用just创建Observable
public static <T> Observable<T> from(T[] array) { int n = array.length; if (n == 0) { return empty(); } else if (n == 1) { return just(array[0]); } return unsafeCreate(new OnSubscribeFromArray<T>(array)); }
2、just 遇到多于一个的情况,会使用from 创建 Observable
public static <T> Observable<T> just(T t1, T t2) { return from((T[])new Object[] { t1, t2 }); }public static <T> Observable<T> just(T t1, T t2, T t3) { return from((T[])new Object[] { t1, t2, t3 }); }public static <T> Observable<T> just(T t1, T t2, T t3, T t4) { return from((T[])new Object[] { t1, t2, t3, t4 }); }...public static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9, T t10) { return from((T[])new Object[] { t1, t2, t3, t4, t5, t6, t7, t8, t9, t10 }); }
所以,使用的时候,可以根据需要和习惯使用这两个方法。
五、使用举例
1、读取List数据
List<String> list = Arrays.asList( "blue", "red", "green", "yellow", "orange", "cyan", "purple" ); Observable<String> listObservable = Observable.from(list);listObservable.subscribe(System.out::println);
2、读取文件内容
Path resources = Paths.get("src", "main", "resources"); try (DirectoryStream<Path> dStream =Files.newDirectoryStream(resources)) { Observable<Path> dirObservable = Observable.from(dStream); dirObservable.subscribe(System.out::println); }catch (IOException e) { e.printStackTrace();}
3、读取数组
Observable<Integer> arrayObservable = Observable.from(new Integer[] {3, 5, 8}); arrayObservable.subscribe(System.out::println);
4、单个字符
Observable.just('S').subscribe(System.out::println);
5、多个字符
Observable .just('R', 'x', 'J', 'a', 'v', 'a') .subscribe(System.out::print, System.err::println, System.out::println);
6、类数据
public static class User { private final String forename; private final String lastname; public User(String forename, String lastname) { this.forename = forename; this.lastname = lastname; } public String getForename() { return this.forename; } public String getLastname() { return this.lastname; }}Observable .just(new User("Dali", "Bali")) .map(u -> u.getForename() + " " + u.getLastname()) .subscribe(System.out::println);
阅读全文
0 1
- RxJava 1.x from()和just()用法、区别和举例
- rxJava just和from区别
- RxJava 操作符 just和from
- ArrayAdapter和BaseAdapter的区别与用法举例
- php中break与continue的区别和用法举例
- rxjava 操作符 just,from,scan,map
- RxJava之just与from源码解读
- 【RxJava Demo分析】(一)just、error、defer和CompositeSubscription
- AfxGetApp和AfxGetMainWnd 用法举例
- ucwords和ucfirst用法举例!!
- adb logcat 用法和举例
- MERGE INTO用法和举例
- insert into select 和 select into from 用法和区别
- RxJava 1.x 参数和参数的类型
- RX系列三 | RxJava | create | from | interval | just | range | filter
- CEGUI 0.6和0.7区别 Porting from CEGUI 0.6.x to CEGUI 0.7.x
- li和ul标签用法举例
- wget参数说明和用法举例
- [NOIP2015]day1题解集合
- 11.mac 各种服务
- 洛谷P1948 [USACO08JAN]电话线Telephone Lines
- Servlet学习笔记1-基本知识点,和servlet的理解
- Tensorflow 1.2+Ubuntu 16.04+Cuda 8.0+cuDNN 5.1配置流程
- RxJava 1.x from()和just()用法、区别和举例
- 页面loading功能的实现
- 微信开发-微信支付-回调(notify_url)失败-解决思路
- 静态变量和动态变量区别
- LINQ系列:C#中与LINQ相关特性
- 莫名其妙的算法们:排序(一)
- c++ code: 最长回文串
- 通过Java.awt.Robot来控制鼠标键盘自动化
- 欢迎使用CSDN-markdown编辑器