Rxjava 实践之路 [初级篇]

1,228 阅读1分钟
  • 去掉数据中重复值
    /**
       * 去掉数据中重复值
       * @author leibing
       * @createTime 2016/09/18
       * @lastModify 2016/09/18
       * @param
       * @return
       */
      private void distinctObservable(){
          // 将发射数据重复五遍再去重复
          Observable.just("A1","A1","B1","C1","D1","B1","A1").repeat(5).distinct().subscribe(new Action1() {
              @Override
              public void call(String s) {
                  // 打印结果
                  System.out.println("ddddddddddddddddd distinct s = " + s);
              }
          });
      }
    运行结果如下:
    09-18 14:54:35.616 6187-6187/cn.jianke.rxjavafilterdemo I/System.out: ddddddddddddddddd distinct s = A1
    09-18 14:54:35.616 6187-6187/cn.jianke.rxjavafilterdemo I/System.out: ddddddddddddddddd distinct s = B1
    09-18 14:54:35.617 6187-6187/cn.jianke.rxjavafilterdemo I/System.out: ddddddddddddddddd distinct s = C1
    09-18 14:54:35.617 6187-6187/cn.jianke.rxjavafilterdemo I/System.out: ddddddddddddddddd distinct s = D1
  • 筛选出原始数据中前n个数据跳过不发射
      /**
       * 筛选出原始数据中前n个数据跳过不发射
       * @author leibing
       * @createTime 2016/09/18
       * @lastModify 2016/09/18
       * @param
       * @return
       */
      private void skipObservable(){
          // skip(n) 提取原数据前n个数据跳过不发射
          Observable.just("1","2","3","4","5").skip(4).subscribe(new Action1() {
              @Override
              public void call(String s) {
                  // 打印结果
                  System.out.println("ddddddddddddddd skip s = " + s);
              }
          });
      }
    运行结果如下:
    09-18 15:04:10.187 11687-11687/cn.jianke.rxjavafilterdemo I/System.out: ddddddddddddddd skip s = 5