精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

RxJava操作符系列二(下)

移動(dòng)開(kāi)發(fā) Android
操作符對(duì)原始Observable發(fā)射的第一項(xiàng)數(shù)據(jù)應(yīng)用一個(gè)函數(shù),然后將那個(gè)函數(shù)的結(jié)果作為自己的第一項(xiàng)數(shù)據(jù)發(fā)射。它將函數(shù)的結(jié)果同第二項(xiàng)數(shù)據(jù)一起填充給這個(gè)函數(shù)來(lái)產(chǎn)生它自己的第二項(xiàng)數(shù)據(jù)。它持續(xù)進(jìn)行這個(gè)過(guò)程來(lái)產(chǎn)生剩余的數(shù)據(jù)序列。

[[180037]]

接上文

輸出日志信息

  1. call:2 ConcatMap RxNewThreadScheduler-5 
  2. onNext: ConcatMap 101 ConcatMap 
  3. call:2 ConcatMap RxNewThreadScheduler-6 
  4. onNext: ConcatMap 102 ConcatMap 
  5. call:2 ConcatMap RxNewThreadScheduler-7 
  6. onNext: ConcatMap 103 ConcatMap 
  7. onCompleted: ConcatMap  

通過(guò)該操作符和flatMap輸出的日志信息,很容易看出flatMap并沒(méi)有保證數(shù)據(jù)源的順序性,但是ConcatMap操作符保證了數(shù)據(jù)源的順序性。在應(yīng)用中,如果你對(duì)數(shù)據(jù)的順序性有要求的話,就需要使用ConcatMap。若沒(méi)有要求,二者皆可使用。

SwitchMap

當(dāng)原始Observable發(fā)射一個(gè)新的數(shù)據(jù)(Observable)時(shí),它將取消訂閱并停止監(jiān)視產(chǎn)生執(zhí)之前那個(gè)數(shù)據(jù)的Observable,只監(jiān)視當(dāng)前這一個(gè).

  1. Integer[] integers = {1, 2, 3}; 
  2. Observable.from(integers).switchMap(new Func1>() { 
  3.             @Override 
  4.             public Observable call(Integer integer) { 
  5.                 Log.e(TAG, "call: SwitchMap" + Thread.currentThread().getName()); 
  6.                 //如果不通過(guò)subscribeOn(Schedulers.newThread())在在子線程模擬并發(fā)操作,所有數(shù)據(jù)源依然會(huì)全部輸出,也就是并發(fā)操作此操作符才有作用 
  7.                 //若在此通過(guò)Thread。sleep()設(shè)置等待時(shí)間,則輸出信息會(huì)不一樣。相當(dāng)于模擬并發(fā)程度 
  8.                 return Observable.just((integer + 100) + "SwitchMap").subscribeOn(Schedulers.newThread()); 
  9.             } 
  10.         }).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber() { 
  11.             @Override 
  12.             public void onCompleted() { 
  13.                 Log.e(TAG, "onCompleted: SwitchMap"); 
  14.             } 
  15.   
  16.             @Override 
  17.             public void onError(Throwable e) { 
  18.                 Log.e(TAG, "onError: SwitchMap"); 
  19.             } 
  20.   
  21.             @Override 
  22.             public void onNext(String s) { 
  23.                 Log.e(TAG, "onNext: SwitchMap "+s); 
  24.             } 
  25.         });  

輸出日志信息

  1. call: SwitchMapmain 
  2. call: SwitchMapmain 
  3. call: SwitchMapmain 
  4. onNext: SwitchMap 106SwitchMap 
  5. onCompleted: SwitchMap  

當(dāng)數(shù)據(jù)源較多時(shí),并不一定是只輸出***一項(xiàng)數(shù)據(jù),有可能輸出幾項(xiàng)數(shù)據(jù),也可能是全部。

GroupBy

看到這個(gè)詞你就應(yīng)該想到了這個(gè)操作符的作用,就是你理解的含義,他將數(shù)據(jù)源按照你的約定進(jìn)行分組。我們通過(guò)groupBy實(shí)行將1到10的數(shù)據(jù)進(jìn)行就劃分,代碼如下 

  1. Observable.range(1, 10).groupBy(new Func1() { 
  2.             @Override 
  3.             public Boolean call(Integer integer) { 
  4.                 return integer % 2 == 0; 
  5.             } 
  6.         }).subscribe(new Subscriber>() { 
  7.             @Override 
  8.             public void onCompleted() { 
  9.                 Log.e(TAG, "onCompleted:1 "); 
  10.             } 
  11.   
  12.             @Override 
  13.             public void onError(Throwable e) { 
  14.                 Log.e(TAG, "onError:1 "); 
  15.             } 
  16.   
  17.             @Override 
  18.             public void onNext(GroupedObservable booleanIntegerGroupedObservable) { 
  19.                 booleanIntegerGroupedObservable.toList().subscribe(new Subscriber>() { 
  20.                     @Override 
  21.                     public void onCompleted() { 
  22.                         Log.e(TAG, "onCompleted:2 " ); 
  23.                     } 
  24.   
  25.                     @Override 
  26.                     public void onError(Throwable e) { 
  27.                         Log.e(TAG, "onError:2 "); 
  28.                     } 
  29.   
  30.                     @Override 
  31.                     public void onNext(List integers) { 
  32.                         Log.e(TAG, "onNext:2 "+integers); 
  33.                     } 
  34.                 }); 
  35.             } 
  36.         });  

輸出日志信息

  1. onNext:2 [1, 3, 5, 7, 9] 
  2. onCompleted:2 
  3. onNext:2 [2, 4, 6, 8, 10] 
  4. onCompleted:2 
  5. onCompleted:1  

在上面代碼中booleanIntegerGroupedObservable變量有一個(gè)getKey()方法,該方法返回的是分組的key,他的值就是groupBy方法call回調(diào)所用函數(shù)的值,在上面也就是integer % 2 == 0的值,及true和false。有幾個(gè)分組也是有此值決定的。

Scan

操作符對(duì)原始Observable發(fā)射的***項(xiàng)數(shù)據(jù)應(yīng)用一個(gè)函數(shù),然后將那個(gè)函數(shù)的結(jié)果作為自己的***項(xiàng)數(shù)據(jù)發(fā)射。它將函數(shù)的結(jié)果同第二項(xiàng)數(shù)據(jù)一起填充給這個(gè)函數(shù)來(lái)產(chǎn)生它自己的第二項(xiàng)數(shù)據(jù)。它持續(xù)進(jìn)行這個(gè)過(guò)程來(lái)產(chǎn)生剩余的數(shù)據(jù)序列。

例如計(jì)算1+2+3+4的和

  1. Observable.range(1,4).scan(new Func2() { 
  2.             @Override 
  3.             public Integer call(Integer integerInteger integer2) { 
  4.                 Log.e(TAG, "call: integer:"+integer+"  integer2 "+integer2); 
  5.                 return integer+integer2; 
  6.             } 
  7.         }).subscribe(new Subscriber() { 
  8.             @Override 
  9.             public void onCompleted() { 
  10.                 Log.e(TAG, "onCompleted: "); 
  11.             } 
  12.   
  13.             @Override 
  14.             public void onError(Throwable e) { 
  15.                 Log.e(TAG, "onError: " ); 
  16.             } 
  17.   
  18.             @Override 
  19.             public void onNext(Integer integer) { 
  20.                 Log.e(TAG, "onNext: "+integer ); 
  21.             } 
  22.         });  

輸出日志信息 

  1. onNext: 1 
  2. call: integer:1  integer2 2 
  3. onNext: 3 
  4. call: integer:3  integer2 3 
  5. onNext: 6 
  6. call: integer:6  integer2 4 
  7. onNext: 10 
  8. onCompleted:  

對(duì)于scan有一個(gè)重載方法,可以設(shè)置一個(gè)初始值,如上面代碼,初始值設(shè)置為10,只需將scan加個(gè)參數(shù)scan(10,new Func2)。

Buffer

操作符將一個(gè)Observable變換為另一個(gè),原來(lái)的Observable正常發(fā)射數(shù)據(jù),變換產(chǎn)生的Observable發(fā)射這些數(shù)據(jù)的緩存集合,如果原來(lái)的Observable發(fā)射了一個(gè)onError通知,Buffer會(huì)立即傳遞這個(gè)通知,而不是首先發(fā)射緩存的數(shù)據(jù),即使在這之前緩存中包含了原始Observable發(fā)射的數(shù)據(jù)。

示例代碼

  1. Observable.range(10, 6).buffer(2).subscribe(new Subscriber>() { 
  2.             @Override 
  3.             public void onCompleted() { 
  4.                 Log.e(TAG, "onCompleted: "); 
  5.             } 
  6.   
  7.             @Override 
  8.             public void onError(Throwable e) { 
  9.                 Log.e(TAG, "onError: "); 
  10.             } 
  11.   
  12.             @Override 
  13.             public void onNext(List integers) { 
  14.                 Log.e(TAG, "onNext: " + integers); 
  15.             } 
  16.         });  

輸出日志信息

  1. onNext: [10, 11] 
  2. onNext: [12, 13] 
  3. onNext: [14, 15] 
  4. onCompleted:  

上面一次性訂閱兩個(gè)數(shù)據(jù),如果設(shè)置參數(shù)為6,就一次性訂閱。buffer的另一重載方法buffer(count, skip)從原始Observable的***項(xiàng)數(shù)據(jù)開(kāi)始創(chuàng)建新的緩存(長(zhǎng)度count),此后每當(dāng)收到skip項(xiàng)數(shù)據(jù),用count項(xiàng)數(shù)據(jù)填充緩存:開(kāi)頭的一項(xiàng)和后續(xù)的count-1項(xiàng),它以列表(List)的形式發(fā)射緩存,取決于count和skip的值,這些緩存可能會(huì)有重疊部分(比如skip count時(shí))。具體執(zhí)行結(jié)果,你可以設(shè)置不同的skip和count觀察輸出日志,查看執(zhí)行結(jié)果及流程。

Window

Window和Buffer類似,但不是發(fā)射來(lái)自原始Observable的數(shù)據(jù)包,它發(fā)射的是Observables,這些Observables中的每一個(gè)都發(fā)射原始Observable數(shù)據(jù)的一個(gè)子集,***發(fā)射一個(gè)onCompleted通知。

  1. Observable.range(10, 6).window(2).subscribe(new Subscriber>() { 
  2.             @Override 
  3.             public void onCompleted() { 
  4.                 Log.e(TAG, "onCompleted1: "); 
  5.             } 
  6.   
  7.             @Override 
  8.             public void onError(Throwable e) { 
  9.                 Log.e(TAG, "onError1: "); 
  10.             } 
  11.   
  12.             @Override 
  13.             public void onNext(Observable integerObservable) { 
  14.                 Log.e(TAG, "onNext1: "); 
  15.                 tv1.append("\n"); 
  16.                 integerObservable.subscribe(new Subscriber() { 
  17.                     @Override 
  18.                     public void onCompleted() { 
  19.                         Log.e(TAG, "onCompleted2: "); 
  20.                     } 
  21.   
  22.                     @Override 
  23.                     public void onError(Throwable e) { 
  24.                         Log.e(TAG, "onError2: "); 
  25.                     } 
  26.   
  27.                     @Override 
  28.                     public void onNext(Integer integer) { 
  29.                         Log.e(TAG, "onNext2: "+integer); 
  30.                     } 
  31.                 }); 
  32.             } 
  33.         });  

輸出日志信息

  1. onNext2: 10 
  2. onNext2: 11 
  3. onCompleted2: 
  4. onNext2: 12 
  5. onNext2: 13 
  6. onCompleted2: 
  7. onNext2: 14 
  8. onNext2: 15 
  9. onCompleted2: 
  10. onCompleted1:  

window和buffer一樣也有不同的重載方法。這兩個(gè)操作符相對(duì)其他操作符不太容易理解,可以去RxJava GitHub理解,里面有圖示解析。當(dāng)然***的理解方式就是通過(guò)更改變量的值,去觀察輸出的日志信息。

好了,這篇文章就介紹到這里。若文中有錯(cuò)誤的地方,歡迎指正。謝謝。

責(zé)任編輯:龐桂玉 來(lái)源: 安卓開(kāi)發(fā)精選
相關(guān)推薦

2017-01-03 16:12:13

RxJava操作符Android

2016-12-28 09:48:09

AndroidRxJava操作符

2017-01-03 15:56:20

RxJava操作符Android

2016-11-17 15:35:51

RxJava操作Subscriber

2021-10-31 18:59:55

Python操作符用法

2010-07-14 14:55:07

Perl操作符

2009-08-19 17:26:28

C# 操作符

2010-07-19 11:00:24

Perl操作符

2011-04-08 16:26:14

JavaScript

2010-07-14 14:30:31

Perl操作符

2009-09-16 09:09:23

Linq Contai

2009-09-15 17:16:58

LINQ查詢操作符

2010-07-14 14:18:51

Perl操作符

2012-02-06 09:13:23

LINQ

2009-07-21 09:31:00

Scala操作符

2010-01-28 11:16:28

C++操作符

2010-07-13 11:11:39

Perl標(biāo)量

2009-11-30 16:48:08

PHP操作符

2009-07-14 18:34:22

Jython操作符重載

2020-03-03 15:42:33

Python字典合并代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国内自拍一区| 含羞草www国产在线视频| 亚洲区欧美区| 国产亚洲欧美一区| 视频区 图片区 小说区| 99在线视频影院| 国产偷国产偷精品高清尤物| 亚洲在线一区二区| 无码人妻丰满熟妇奶水区码| 91精品久久久久久久蜜月| 亚洲精品久久7777777| 超碰超碰在线观看| 欧美gv在线观看| |精品福利一区二区三区| 成人欧美一区二区三区视频 | 亚洲国产欧美国产综合一区| 一区二区三区亚洲| 亚洲精品女人久久久| 久久国产三级| 日韩欧美极品在线观看| 日本精品福利视频| aiai在线| 久久午夜老司机| 国产精品嫩草在线观看| 一区二区三区免费观看视频| 国产精品日韩精品欧美精品| 欧美激情国产精品| 手机av在线看| 欧美综合一区| 亚洲欧美色婷婷| 污污污www精品国产网站| 伊人亚洲精品| 欧美日韩久久久一区| 欧美成人免费高清视频| 91av久久| 亚洲国产精品久久久久婷婷884 | 日韩亚洲欧美一区| 高潮一区二区三区| 日本美女久久| 91国产成人在线| 精品一区二区中文字幕| av中文资源在线资源免费观看| 一区二区三区在线高清| 男同互操gay射视频在线看| 国产成人天天5g影院在线观看| 91影院在线观看| 好吊色欧美一区二区三区| 亚洲精品一区二区三区蜜桃| 国产剧情一区二区| 亚洲自拍小视频| 国产精品自拍电影| 狠狠网亚洲精品| 成人欧美一区二区三区黑人孕妇| 91在线你懂的| 激情亚洲综合在线| 亚洲xxxx视频| 性生活视频软件| 成人免费视频一区| 国产呦系列欧美呦日韩呦| 少妇精品高潮欲妇又嫩中文字幕 | 欧美一区二区三区成人| 久国产精品视频| 精品一区二区三区免费看| 欧美一区二区在线播放| 岛国大片在线免费观看| 高清欧美性猛交xxxx黑人猛| 亚洲国产成人久久综合一区| 久久精品女同亚洲女同13| 一区二区导航| 在线播放国产精品| 黄色香蕉视频在线观看| 国产一在线精品一区在线观看| 欧美激情中文字幕在线| 女人十八岁毛片| 日本女人一区二区三区| 91精品啪aⅴ在线观看国产| 国产超碰人人模人人爽人人添| 成人激情校园春色| 欧美日韩综合网| 福利视频在线| 婷婷久久综合九色综合绿巨人| 无遮挡又爽又刺激的视频| 国产欧美自拍| 精品国产第一区二区三区观看体验| 三级电影在线看| 水蜜桃精品av一区二区| 欧美精品video| 加勒比在线一区| 国产在线精品一区二区不卡了| 国产伦精品一区二区三区免 | 国产精品久久影院| 成人国产在线看| 成人天堂yy6080亚洲高清| 欧美精品v国产精品v日韩精品 | 一区二区三区在线视频免费观看| 久久亚洲中文字幕无码| 黄色成人在线观看网站| 亚洲国产成人av在线| 亚洲色图100p| 国产视频欧美| 亚洲最大福利视频网| 蜜桃免费在线| 亚洲综合激情网| 91香蕉视频导航| 哺乳一区二区三区中文视频| 国产一区二区三区精品久久久| 久久久精品一区二区涩爱| 日本v片在线高清不卡在线观看| 91文字幕巨乱亚洲香蕉| 爱久久·www| 五月婷婷久久丁香| 天天久久综合网| 超碰成人久久| 91成人免费观看网站| 国产三级精品在线观看| 国产日韩av一区二区| 国产黄页在线观看| 欧美午夜在线播放| 中文字幕在线观看日韩| 欧美三级一区二区三区| 国产高清精品网站| 一区二区精品在线观看| 亚洲承认视频| 日韩av在线免费看| 久久精品国产亚洲av香蕉| 国产乱子伦视频一区二区三区| 日本视频一区二区在线观看| 69av成人| 欧美v国产在线一区二区三区| 国精产品久拍自产在线网站| 青青草视频一区| 日本三级中国三级99人妇网站 | 成人免费在线网址| 香蕉视频网站在线观看| 欧美网站大全在线观看| 久久成人激情视频| 欧美在线免费一级片| 91网在线免费观看| 熟妇人妻系列aⅴ无码专区友真希| 亚洲精品成人少妇| 美女被艹视频网站| 欧美成人milf| 国产欧美日韩专区发布| 18视频免费网址在线观看| 欧美性猛交xxxx富婆弯腰| 中文字幕丰满孑伦无码专区| 亚洲尤物影院| 色呦哟—国产精品| 中日韩午夜理伦电影免费| 青青国产在线视频| 欧美国产日本视频| jizz18女人| 亚洲精品一区二区妖精| 亚洲最大福利网站| mm视频在线视频| 日韩精品免费综合视频在线播放| 天天综合网入口| 久久九九全国免费| 亚洲一级片网站| 7777久久香蕉成人影院| 国产精品福利视频| 制服丝袜专区在线| 国产一区二区三区视频免费| 在线观看国产小视频| 中文幕一区二区三区久久蜜桃| 中文字幕成人在线视频| 女人香蕉久久**毛片精品| 国产v亚洲v天堂无码| 国产在线精彩视频| 国产亚洲精品91在线| 国产精品色综合| 亚洲一卡二卡三卡四卡无卡久久| 老熟妇精品一区二区三区| 久久三级福利| 中国一级大黄大黄大色毛片| 澳门成人av| 国产精品久久久久久久久免费 | 国产视频一区二区视频| 亚洲国产成人精品女人| 国产精品区一区二区三含羞草| 在线能看的av网址| 久久久97精品| 天天综合网天天综合| 欧美自拍偷拍一区| 欧美日韩中文字幕在线观看| 久久综合九色综合久久久精品综合| 国产九九在线观看| 激情久久综合| 日韩精品久久久毛片一区二区| 成人久久精品| 欧美一级大片在线观看| 国产在线高潮| 亚洲女同精品视频| 精品人妻一区二区三区蜜桃 | av免费观看在线| 欧美日韩在线观看视频| 欧美在线视频第一页| 久久婷婷成人综合色| 性色av浪潮av| 日本不卡不码高清免费观看 | 蜜臀av性久久久久蜜臀aⅴ四虎| 成年在线观看视频| 日韩国产在线| 欧美精品一区二区三区在线看午夜| 精品国产亚洲一区二区三区| 国产不卡在线观看| 国产高潮在线| 欧美另类在线播放| 免费在线看黄色| 亚洲社区在线观看| 污污视频在线免费看| 日韩一区二区精品| 一级黄色片免费| 色999日韩国产欧美一区二区| 日本在线视频中文字幕| 亚洲欧美国产高清| 国产精品www爽爽爽| 久久新电视剧免费观看| 你懂的在线观看网站| 国产精品亚洲第一| 久久久精品高清| 日本不卡视频一二三区| 成年人视频在线免费| 日韩一级免费| 国产精品入口芒果| 影音先锋久久| av动漫在线播放| 亚洲国产精品日韩专区av有中文| 亚洲精品国产精品国自产观看| 综合国产视频| 久久精品人人做人人爽电影| 大香伊人久久精品一区二区| 91黄色国产视频| 日本高清精品| 亚洲最大成人网色| 国产精品一区三区在线观看| 成人黄色网免费| 日日夜夜亚洲| 成人午夜在线影院| 91成人app| 91在线精品视频| www.久久草.com| 91久久国产精品91久久性色| 99久久这里有精品| 成人美女免费网站视频| 国产一区二区视频在线看| 成人中文字幕在线观看| 国产激情一区| 91福利视频导航| 粉嫩久久久久久久极品| 国产亚洲情侣一区二区无| 日本国产精品| 久久久久久99| 国产精品探花在线观看| 亚洲成人18| 国产精品7m凸凹视频分类| 好色先生视频污| 国产一区二区三区四区三区四| 老太脱裤让老头玩ⅹxxxx| 午夜一区二区三区不卡视频| www.99在线| 久久国产精品99精品国产| 亚洲自拍第三页| 成人晚上爱看视频| 老牛影视av老牛影视av| 中文字幕av资源一区| 26uuu成人网| 午夜精品一区二区三区电影天堂| 99久热在线精品996热是什么| 欧洲激情一区二区| 国产乱子伦精品无码码专区| 精品国产髙清在线看国产毛片 | 久久精品亚洲国产| 日韩av激情| 日本亚洲欧洲色α| 91精品一久久香蕉国产线看观看| αv一区二区三区| 一道在线中文一区二区三区| 伊人天天久久大香线蕉av色| 狠狠爱www人成狠狠爱综合网| 大肉大捧一进一出好爽动态图| 久久se这里有精品| 亚洲色偷偷色噜噜狠狠99网 | 亚洲欧美日韩高清| 菠萝菠萝蜜在线观看| 欧美影院久久久| 91成人福利社区| 欧美激情第六页| 在线中文字幕第一区| 久久久免费视频网站| 国精产品一区一区三区mba视频| 亚洲国产精品自拍视频| 成人欧美一区二区三区黑人麻豆 | 都市激情综合| 99re在线播放| 国产中文精品久高清在线不| 青青视频免费在线观看| 日韩精品欧美精品| 黑人玩弄人妻一区二区三区| 欧美激情一区二区三区蜜桃视频 | 黄色免费一级视频| 亚洲va欧美va天堂v国产综合| 一区两区小视频| 日韩av在线网页| 麻豆福利在线观看| 国产免费久久av| 亚洲欧洲色图| 国产精品久久久久9999爆乳| 麻豆极品一区二区三区| 亚洲精品女人久久久| 亚洲欧美另类久久久精品| 日本黄色中文字幕| 亚洲福利小视频| 精品黄色免费中文电影在线播放| 青青草成人在线| 99re8这里有精品热视频8在线| 日韩欧美亚洲在线| 国产精品综合| 中文字幕在线视频播放| 亚洲精品美腿丝袜| 国产精品高潮呻吟久久久| 亚洲视频视频在线| 超碰aⅴ人人做人人爽欧美| 国产日韩欧美综合精品| 你懂的网址国产 欧美| 奇米影视四色在线| 国产性做久久久久久| 久久久久久91亚洲精品中文字幕| 欧美成人一区二区| 国产黄色在线网站| 国产欧美在线播放| 精品日韩在线| 色一情一乱一伦一区二区三区日本| bt欧美亚洲午夜电影天堂| 久久久久成人精品无码| 欧美一个色资源| 黄色av电影在线观看| 成人性生交大片免费观看嘿嘿视频| 精品久久91| 色诱视频在线观看| 久久久www成人免费无遮挡大片| 国产精品100| 国产丝袜一区二区三区免费视频| 超碰资源在线| 国产精品日韩欧美一区二区三区| 影音先锋国产精品| 久久久午夜精品福利内容| 精品久久久久久久久中文字幕| 日本免费网站在线观看| 97久久精品人搡人人玩| 精品嫩草影院| 国产精品后入内射日本在线观看| 97se亚洲国产综合自在线不卡 | 日韩精品久久一区| 奇米影视7777精品一区二区| 成人免费视频入口| 666欧美在线视频| 欧美性video| 久久精品国产精品青草色艺| 日韩在线观看一区二区| 91ts人妖另类精品系列| 日韩午夜av一区| 9765激情中文在线| 日本高清一区| 国产精品一区二区久久精品爱涩| 免费中文字幕在线| 日韩av资源在线播放| 精品123区| 91精品一区二区三区四区| 成人免费观看av| 免费黄色av片| 九九视频直播综合网| 青青草原在线亚洲| 日韩中文字幕a| 亚洲尤物视频在线| 亚洲视频一区二区三区四区| 欧美日韩国产第一页| 香蕉久久精品日日躁夜夜躁| 婷婷六月天在线| 亚洲精品国产视频| 久久免费看视频| 91香蕉亚洲精品| 欧美亚洲三级| 欧美日韩国产精品综合| 日韩久久精品成人| 中文字幕欧美人妻精品一区| 国产精品第四页| 视频一区 中文字幕| 国产精品女视频| 亚洲全部视频| 999精品在线视频| 日韩精品视频免费专区在线播放| 国产精品久久久久77777丨| 日本福利视频一区| 一区在线观看免费| 欧洲综合视频| 成人黄色在线免费观看| 久久国内精品视频| 91av在线免费视频| 欧美成人午夜激情在线|