distinct 这个操作符非常的简单、通俗、易懂,就是简单的去重嘛 Observable.just(1,2,3,4,5,1).distinct().subscribe(new Consumer<Integer>() { @Override public void accept(Integer integer) throws Exception { Log.e("55555555555", "distinct : " + integer + "\n"); } });
09-05 20:27:26.939 12107-12107/com.vise.snowdemo E/55555555555: distinct : 1 09-05 20:27:26.939 12107-12107/com.vise.snowdemo E/55555555555: distinct : 2 09-05 20:27:26.939 12107-12107/com.vise.snowdemo E/55555555555: distinct : 3 09-05 20:27:26.939 12107-12107/com.vise.snowdemo E/55555555555: distinct : 4 09-05 20:27:26.939 12107-12107/com.vise.snowdemo E/55555555555: distinct : 5
Filter Filter 也很简单,过滤器嘛。可以接受一个参数,让其过滤掉不符合我们条件的值 Observable.just(1, 20, 65, -5, 7, 19) .filter(new Predicate<Integer>() { @Override public boolean test(@NonNull Integer integer) throws Exception { return integer >= 10; } }).subscribe(new Consumer<Integer>() { @Override public void accept(@NonNull Integer integer) throws Exception { } });