Android函数响应式编程——必学的RxJava转换操作符toList、toSortedList、toMap

来源:互联网 发布:生产流程优化 编辑:程序博客网 时间:2024/06/06 17:00

1.toList:就是把你的Observable处理成一个集合

rx.Observable.just(1,2,3).toList().subscribe(new Action1<List<Integer>>() {    @Override    public void call(List<Integer> integers) {        for (int i : integers) {            Log.i("xbh", "call: " + i);        }    }});

输出

12-10 02:22:32.871 8861-8861/? I/xbh: call: 1
12-10 02:22:32.871 8861-8861/? I/xbh: call: 2
12-10 02:22:32.871 8861-8861/? I/xbh: call: 3


2.toSortedList:就是把你的Observable处理成一个升序集合,自动帮你排序

rx.Observable.just(3,1,2).toSortedList().subscribe(new Action1<List<Integer>>() {    @Override    public void call(List<Integer> integers) {        for (int i : integers) {            Log.i("xbh", "call: " + i);        }    }});

输出

12-10 02:22:32.871 8861-8861/? I/xbh: call: 1
12-10 02:22:32.871 8861-8861/? I/xbh: call: 2
12-10 02:22:32.871 8861-8861/? I/xbh: call: 3


3.toMap:根据你的对象的某个属性作为键,处理成map

Book b1 = new Book("第一行代码","B");Book b2 = new Book("Android进阶之光","A");Book b3 = new Book("Android群英传","C");rx.Observable.just(b1,b2,b3).toMap(new Func1<Book, String>() {    @Override    public String call(Book book) {        return book.getBookQuality();    }}).subscribe(new Action1<Map<String, Book>>() {    @Override    public void call(Map<String, Book> stringBookMap) {        Log.i("xbh", stringBookMap.get("A").getBookName());    }});

输出

12-10 02:23:30.924 9807-9807/com.hdu.a15058124.homework3 I/xbh: Android进阶之光

阅读全文
0 0