RxJava2 / RxAndroid2操作符distinct与distinctUntilChanged去重结果异同
来源:互联网 发布:淘宝宝贝尺码自定义 编辑:程序博客网 时间:2024/06/16 19:23
RxJava2 / RxAndroid2操作符distinct与distinctUntilChanged去重结果异同
代码例如:
package zhangphil.app;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.util.Log;import io.reactivex.Observable;import io.reactivex.android.schedulers.AndroidSchedulers;import io.reactivex.disposables.CompositeDisposable;import io.reactivex.observers.DisposableObserver;import io.reactivex.schedulers.Schedulers;public class MainActivity extends AppCompatActivity { private final String TAG = getClass().getSimpleName(); private CompositeDisposable mCompositeDisposable = new CompositeDisposable(); private Integer[] test_data = { 1, 1, 2, 3, 4, 5, 2, 5, 3, 6, 4, 7, 7, 8, 9 }; // 故意设置若干重复的数据,等待去重复数据 @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); test(); } private void test() { Observable<Integer> observable1 = Observable.fromArray(test_data); Observable<Integer> observable2 = Observable.fromArray(test_data); mCompositeDisposable.addAll(observable1 .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .distinct() .subscribeWith(getObserver(0)), observable2 .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .distinctUntilChanged() .subscribeWith(getObserver(1))); } private DisposableObserver getObserver(final int id) { DisposableObserver disposableObserver = new DisposableObserver<Object>() { @Override public void onNext(Object o) { Log.d(id + TAG, "#####开始#####"); Log.d(id + "数据", String.valueOf(o)); Log.d(id + TAG, "#####结束#####"); } @Override public void onComplete() { Log.d(id + TAG, "onComplete"); } @Override public void onError(Throwable e) { Log.e(id + TAG, e.toString(), e); } }; return disposableObserver; } @Override protected void onDestroy() { super.onDestroy(); // 如果退出程序,就清除后台任务 mCompositeDisposable.clear(); }}
运行结果输出:
05-18 10:57:55.069 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 105-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 205-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 305-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 405-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 505-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 605-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 705-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 805-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 905-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: onComplete05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/1数据: 105-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/1数据: 205-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.070 4374-4374/zhangphil.app D/1数据: 305-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 405-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 505-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 205-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 505-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 305-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 605-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 405-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 705-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 805-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 905-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束#####05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: onComplete
阅读全文
0 0
- RxJava2 / RxAndroid2操作符distinct与distinctUntilChanged去重结果异同
- RxJava2 / RxAndroid2操作符distinct去重
- RxJava2 / RxAndroid2操作符ofType:根据类型选择输出结果
- RxJava2 / RxAndroid2操作符take
- RxJava2 / RxAndroid2操作符skip
- RxJava2 / RxAndroid2操作符skip
- RxJava2 / RxAndroid2操作符skip
- RxJava2 / RxAndroid2操作符interval:每隔若干时间发射信号
- RxJava2 / RxAndroid2的merge操作合并多个Observable
- RxJava操作符 debounce 和 distinctUntilChanged
- mysql distinct 去重
- Distinct自定义去重
- distinct 去重问题
- mysql 去重方法distinct 与 group by 性能比较
- RxJava2 / RxAndroid2的过滤器filter
- RxAndroid2 / RxJava2简单的CompletableObserver
- sqlserver 去重查询distinct
- SQL DISTINCT(去重)
- 二叉树的层次遍历
- http和socket之长连接和短连接区别
- Android7.0 MTK 需求文档(二)
- Java中的线程池的集中管理和监控
- Could not resolve dependencies for project : Failure to find jar was cached in the local reposit
- RxJava2 / RxAndroid2操作符distinct与distinctUntilChanged去重结果异同
- 多线程编程
- 二级指针的理解
- Greenbone Security Assistant is running and listening only on the local interface.解决
- 使用QT做的一个时间计划表
- 《算法导论》第11章 散列表 个人笔记
- angular2 [ngStyle] [ngClass]的用法
- 人体穴位图解高清版
- log4j.properties配置与加载应用