国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

RxJava操作符系列三(下)

移動開發
ElementAt操作符獲取原始Observable發射的數據序列指定索引位置的數據項,然后當做自己的唯一數據發射。給它傳遞一個基于0的索引值,它會發射原始Observable數據序列對應索引位置的值,如果你傳遞給elementAt的值為4,那么它會發射第5項的數據。

[[180593]]

接上文

Take

Take操作符可以修改Observable的行為,只返回前面的N項數據,然后發射完成通知,忽略剩余的數據。

  1. Observable.range(1,8) 
  2.  
  3.           .take(4) 
  4.  
  5.           .subscribe(new Subscriber<Integer>() { 
  6.  
  7.         @Override 
  8.  
  9.         public void onNext(Integer item) { 
  10.  
  11.            Log.e(TAG, "Next: " + item); 
  12.  
  13.         } 
  14.  
  15.   
  16.  
  17.         @Override 
  18.  
  19.         public void onError(Throwable error) { 
  20.  
  21.             Log.e(TAG, "Error: " + error.getMessage()); 
  22.  
  23.         } 
  24.  
  25.   
  26.  
  27.         @Override 
  28.  
  29.         public void onCompleted() { 
  30.  
  31.            Log.e(TAG, "complete."); 
  32.  
  33.         } 
  34.  
  35.     });  

輸出日志信息

  1. Next: 1 
  2.  
  3. Next: 2 
  4.  
  5. Next: 3 
  6.  
  7. Next: 4 
  8.  
  9. complete  

take和skip一樣也有其它兩個重載方法take(long time, TimeUnit unit),take(long time, TimeUnit unit, Scheduler scheduler),默認在computation調度器上執行。

take還有變體操作符TakeLast,takeLastBuffer具體執行效果可自行代碼。

Debounce

該操作符指的是過了一段指定的時間還沒發射數據時才發射一個數據,聽著可能有點繞。你可以理解對源Observable間隔期產生的結果進行過濾,如果在這個規定的間隔期內沒有別的結果產生,則將這個結果提交給訂閱者,否則忽略該結果,原理有點像光學防抖

上代碼 

  1. Observable.range(1,8) 
  2.  
  3.           .take(4) 
  4.  
  5.           .subscribe(new Subscriber<Integer>() { 
  6.  
  7.         @Override 
  8.  
  9.         public void onNext(Integer item) { 
  10.  
  11.            Log.e(TAG, "Next: " + item); 
  12.  
  13.         } 
  14.  
  15.   
  16.  
  17.         @Override 
  18.  
  19.         public void onError(Throwable error) { 
  20.  
  21.             Log.e(TAG, "Error: " + error.getMessage()); 
  22.  
  23.         } 
  24.  
  25.   
  26.  
  27.         @Override 
  28.  
  29.         public void onCompleted() { 
  30.  
  31.            Log.e(TAG, "complete."); 
  32.  
  33.         } 
  34.  
  35.     });  

輸出信息

  1. onNext: 4 
  2.  
  3. onNext: 5 
  4.  
  5. onNext: 6 
  6.  
  7. onNext: 7 
  8.  
  9. onNext: 8 
  10.  
  11. onNext: 9 
  12.  
  13. onCompleted:  

這個輸出數據不一定一樣,有可能從5開始。

Distinct

這個比較好理解,它就是過濾掉重復的數據,只允許還沒有發射過的數據項通過。

示例代碼

  1. Observable.just(0, 0, 6, 4, 2, 8, 2, 1, 9, 0) 
  2.  
  3.                 .distinct() 
  4.  
  5.                 .subscribe(new Subscriber<Integer>() { 
  6.  
  7.                     @Override 
  8.  
  9.                     public void onCompleted() { 
  10.  
  11.                         Log.e(TAG, "onCompleted:Distinct "); 
  12.  
  13.                     } 
  14.  
  15.   
  16.  
  17.                     @Override 
  18.  
  19.                     public void onError(Throwable e) { 
  20.  
  21.                         Log.e(TAG, "onError:Distinct "); 
  22.  
  23.                     } 
  24.  
  25.   
  26.  
  27.                     @Override 
  28.  
  29.                     public void onNext(Integer integer) { 
  30.  
  31.                         Log.e(TAG, "onNext:Distinct " + integer); 
  32.  
  33.                     } 
  34.  
  35.                 });  

輸出日志信息 

  1. onNext:Distinct 0 
  2.  
  3. onNext:Distinct 6 
  4.  
  5. onNext:Distinct 4 
  6.  
  7. onNext:Distinct 2 
  8.  
  9. onNext:Distinct 8 
  10.  
  11. onNext:Distinct 1 
  12.  
  13. onNext:Distinct 9 
  14.  
  15. onCompleted:Distinct  

ElementAt

該操作符獲取原始Observable發射的數據序列指定索引位置的數據項,然后當做自己的***數據發射。給它傳遞一個基于0的索引值,它會發射原始Observable數據序列對應索引位置的值,如果你傳遞給elementAt的值為4,那么它會發射第5項的數據。如下示例代碼

  1. Observable.just(0, 0, 6, 4, 2, 8, 2, 1, 9, 0) 
  2.  
  3.                 .elementAt(4) 
  4.  
  5.                 .subscribe(new Subscriber<Integer>() { 
  6.  
  7.                     @Override 
  8.  
  9.                     public void onCompleted() { 
  10.  
  11.                         Log.e(TAG, "onCompleted:ElementAt "); 
  12.  
  13.                     } 
  14.  
  15.   
  16.  
  17.                     @Override 
  18.  
  19.                     public void onError(Throwable e) { 
  20.  
  21.                         Log.e(TAG, "onError:ElementAt "); 
  22.  
  23.                     } 
  24.  
  25.   
  26.  
  27.                     @Override 
  28.  
  29.                     public void onNext(Integer integer) { 
  30.  
  31.                         Log.e(TAG, "onNext:ElementAt " + integer); 
  32.  
  33.                     } 
  34.  
  35.                 });  

輸出日志信息

  1. onNext:ElementAt 2 
  2.  
  3. onCompleted:ElementAt  

IgnoreElements

操作符抑制原始Observable發射的所有數據,只允許它的終止通知(onError或onCompleted)通過,使用該操作符onNext()方法不會執行。 

  1. Observable.just(1, 2, 3).ignoreElements().subscribe(new Subscriber() { 
  2.  
  3.            @Override 
  4.  
  5.            public void onCompleted() { 
  6.  
  7.                Log.e(TAG, "onCompleted"); 
  8.  
  9.            } 
  10.  
  11.  
  12.  
  13.            @Override 
  14.  
  15.            public void onError(Throwable e) { 
  16.  
  17.                Log.e(TAG, "onError"); 
  18.  
  19.            } 
  20.  
  21.  
  22.  
  23.            @Override 
  24.  
  25.            public void onNext(Integer integer) { 
  26.  
  27.                Log.e(TAG, "onNext"); 
  28.  
  29.            } 
  30.  
  31.        });  

執行后只會輸出onCompleted。這個操作符效果就如同empty()方法創建一個空的Observable,只會執行onCompleted()方法,不同的是ignoreElements是對數據源的處理,而empty()是創建Observable。 

責任編輯:龐桂玉 來源: 安卓開發精選
相關推薦

2016-12-28 09:54:50

AndroidRxJava操作符

2017-01-03 15:56:20

RxJava操作符Android

2016-12-28 09:48:09

AndroidRxJava操作符

2016-11-17 15:35:51

RxJava操作Subscriber

2009-08-19 17:26:28

C# 操作符

2021-10-31 18:59:55

Python操作符用法

2010-07-14 14:55:07

Perl操作符

2010-07-19 11:00:24

Perl操作符

2011-04-08 16:26:14

JavaScript

2010-07-14 14:30:31

Perl操作符

2009-11-17 10:42:58

PHP操作符

2009-07-21 09:31:00

Scala操作符

2009-09-15 17:16:58

LINQ查詢操作符

2010-07-14 14:18:51

Perl操作符

2009-09-16 09:09:23

Linq Contai

2012-02-06 09:13:23

LINQ

2010-01-28 11:16:28

C++操作符

2010-07-13 11:11:39

Perl標量

2009-11-30 16:48:08

PHP操作符

2009-07-14 18:34:22

Jython操作符重載
點贊
收藏

51CTO技術棧公眾號

亚洲天堂男人| 久久99欧美| 红杏视频成人| 日韩免费黄色av| 亚洲大片在线| 大荫蒂性生交片| 亚洲欧洲综合另类在线| 中文字幕在线观看日本| 一区二区三区天堂av| 伊人久久大香线蕉无限次| 国严精品久久久久久亚洲影视| 国产一区在线精品| 白浆爆出在线观看| 欧美日韩免费一区二区三区| 美女网站视频一区| 国产精品免费网站| 久久aⅴ国产欧美74aaa| 国语对白在线视频| 精品美女一区二区三区| 久久久亚洲欧洲日产| 99re资源| 99免费精品在线观看| 麻豆影视在线观看| 亚洲老头老太hd| 日韩精品欧美| 久久成人福利视频| 亚洲高清不卡在线观看| 欧产日产国产精品视频| 欧洲成人免费aa| 久久99精品久久久久久动态图| 先锋成人影音| 日韩精品在线免费| 欧美+亚洲+精品+三区| 欧美成人xxxxx| 在线综合亚洲欧美在线视频| 加勒比色综合久久久久久久久| 四虎影院一区二区三区| 一区二区三区 在线观看视频| 亚洲黄色网址| av一区二区三区免费| 国产农村妇女精品| 91黄页在线观看| 成人信息集中地欧美| 国产亚洲一区二区三区在线观看| 成人在线影视| 国产在线视频欧美| 国产精品午夜电影| 精品无人乱码一区二区三区| 国产日韩三区| 亚洲乱码日产精品bd| av成人在线播放| 日本中文不卡| 欧美自拍偷拍一区| 妖精一区二区三区精品视频| 777久久久精品一区二区三区| 欧美电视剧在线看免费| 日韩系列欧美系列| 日韩中文字幕免费在线| 精品亚洲一区二区三区四区五区| 亚洲黄色视屏| 亚洲福利二区| 国产999视频| 久久久影视传媒| 欧美成人精品三级网站| 日本一区二区免费看| 一本色道久久综合亚洲91| 亚洲免费毛片| 欧美婷婷精品激情| 日韩中文字幕久久| 狠狠狠色丁香婷婷综合久久五月| 欧美三级电影一区二区三区| 国产欧美日韩高清| 伊人性伊人情综合网| 9l亚洲国产成人精品一区二三| 日本福利视频一区| 亚洲性av在线| 国产曰批免费观看久久久| 日韩av激情| 日韩亚洲视频| 欧美一级高清大全免费观看| 伊人成人在线视频| yes4444视频在线观看| 97人摸人人澡人人人超一碰| 亚洲444eee在线观看| 欧美色就是色| 午夜免费性福利| 国产精品视频在线观看| 亚洲一区二区三区在线看| 国产传媒欧美日韩成人精品大片| 国产嫩草在线观看| 欧美精品18videos性欧美| 国产欧美1区2区3区| 午夜电影一区| 国产激情三区| 国产精品自产拍在线观看| 亚洲一区在线电影| 国产精品x453.com| 国产在线播放av| 国产精品日韩一区二区三区| 欧美日韩大陆一区二区| 一区二区日韩免费看| а天堂中文在线官网| 日韩欧美一区二区三区久久婷婷| 亚洲高清色综合| 国产在线播放一区三区四| 国产极品一区| 天天爽夜夜爽一区二区三区| 国产精品第七影院| 在线观看网站黄不卡| 日韩中文字幕区一区有砖一区 | 亚洲精品少妇久久久久久| 日本成人黄色片| 亚洲成人一区二区在线观看| 91成人国产| 99热国产在线中文| 800av在线免费观看| 欧美激情伊人电影| 欧美日韩免费区域视频在线观看| 影音先锋亚洲一区| 捆绑调教日本一区二区三区| www.四虎成人| 国产日韩欧美中文| 日韩你懂的在线播放| 成人天堂资源www在线| 日韩欧美在线精品| 日韩在线资源| bt天堂新版中文在线地址| 性欧美xxxx视频在线观看| 一本久久a久久精品亚洲| 久久精品国产免费| 97久久精品| 国产免费av高清在线| 久久精品国产精品亚洲精品色| 欧美激情中文字幕在线| 欧美日韩中文在线观看| 久久国产精品72免费观看| 黄色美女久久久| av大片在线| 免费99热在线观看| 欧美精品一区二区三区在线看午夜| 日韩亚洲欧美成人| 欧美体内谢she精2性欧美| 国产乱人伦精品一区二区在线观看 | 色偷偷噜噜噜亚洲男人的天堂| 99亚洲国产精品| 国产视频在线看| 一个色免费成人影院| 不卡av电影在线播放| 欧美成人欧美edvon| 国产91免费看片| 久久精品视频91| 日本黄在线观看| 性孕妇free特大另类| 日本亚洲最大的色成网站www| 亚洲午夜未删减在线观看 | av在线综合网| 亚洲色图第一区| 91久久久久久久| www成人免费观看| 国产精品久久国产精麻豆99网站| 日韩成人三级视频| 99精品国产福利在线观看免费 | 国产日韩专区在线| 国产美女被遭强高潮免费网站| 91亚洲成人| 亚洲一二三四区| 欧美在线一级视频| 两个人hd高清在线观看| 国内精品福利| 精品中文字幕久久久久久| 日韩一级理论片| 亚洲自拍偷拍网| 日韩av片免费在线观看| 日本一本视频| 99精品全国免费观看视频软件| 亚洲国产一区二区三区在线观看| 亚洲综合在线中文字幕| 在线无限看免费粉色视频| 中文在线а√天堂官网| 黄色欧美在线| www.av亚洲| 成人免费视频网站| 日韩在线免费电影| 99久久久久久| 精品视频第一区| 日韩一级电影| 欧美系列一区二区| 黄色一级片播放| 网站一区二区| 亚洲精品国产拍免费91在线| 日韩在线第三页| 日韩精品丝袜美腿| 亚洲无线码一区二区三区| 国产一区二区高清不卡| 麻豆精品91| 美女精品一区| 久久精品视频在线观看| 亚洲热app| av电影在线观看一区| 91精品短视频|