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

Java 8 Predicate 函數接口

開發 后端
Predicate 函數接口同之前介紹的 Function 接口一樣,是一個函數式接口,它可以接受一個泛型 <T> 參數,返回值為布爾類型。

[[414975]]

本文轉載自微信公眾號「未讀代碼」,作者未讀君。轉載本文請聯系未讀代碼公眾號。

Predicate 函數接口同之前介紹的 Function 接口一樣,是一個函數式接口,它可以接受一個泛型 <T> 參數,返回值為布爾類型。Predicate 常用于數據過濾,如過濾出集合中符合某個條件的元素。

源碼:Java 8 中函數接口 Predicate。

  1. package java.util.function
  2.  
  3. import java.util.Objects; 
  4.  
  5. @FunctionalInterface 
  6. public interface Predicate<T> { 
  7.  
  8.     boolean test(T t); 
  9.  
  10.     default Predicate<T> and(Predicate<? super T> other) { 
  11.         Objects.requireNonNull(other); 
  12.         return (t) -> test(t) && other.test(t); 
  13.     } 
  14.    
  15.     default Predicate<T> negate() { 
  16.         return (t) -> !test(t); 
  17.     } 
  18.  
  19.     default Predicate<T> or(Predicate<? super T> other) { 
  20.         Objects.requireNonNull(other); 
  21.         return (t) -> test(t) || other.test(t); 
  22.     } 
  23.  
  24.     static <T> Predicate<T> isEqual(Object targetRef) { 
  25.         return (null == targetRef) 
  26.                 ? Objects::isNull 
  27.                 : object -> targetRef.equals(object); 
  28.     } 

1. Predicate test

Predicate 函數接口可以用于判斷一個參數是否符合某個條件。

示例:判斷某個字符串是否為空。

  1. import java.util.function.Predicate; 
  2.  
  3. public class Java8PredicateTest { 
  4.     public static void main(String[] args) { 
  5.         Predicate<String> isEmpty = String::isEmpty; 
  6.         System.out.println(isEmpty.test("")); 
  7.         System.out.println(isEmpty.test("www.wdbyte.com")); 
  8.     } 

輸出結果:

  1. true 
  2. false 

2. Predicate Stream filter

Stream 中的 filter() 方法是通過接收一個 Predicate 函數接口實現的。

示例:過濾出集合中,字符串長度為 4 的字符串。

  1. import java.util.Arrays; 
  2. import java.util.List; 
  3. import java.util.stream.Collectors; 
  4.  
  5. public class Java8PredicateFilter { 
  6.  
  7.     public static void main(String[] args) { 
  8.         List<String> list = Arrays.asList("java""node""www.wdbyte.com"); 
  9.         list = list.stream().filter(str -> str.length() == 4).collect(Collectors.toList()); 
  10.         System.out.println(list); 
  11.     } 

輸出結果:

  1. [java, node] 

3. Predicate and

使用 and() 方法,可以讓前后兩個 Predicate 判斷條件一起生效。

示例 1:過濾數字集合中,數字大小在 5 至 9 之間的數字。

  1. import java.util.Arrays; 
  2. import java.util.List; 
  3. import java.util.function.Predicate; 
  4. import java.util.stream.Collectors; 
  5.  
  6. public class Java8PredicateAnd { 
  7.  
  8.     public static void main(String[] args) { 
  9.         List<Integer> numberList = Arrays.asList(3, 4, 5, 6, 7, 8, 9, 10); 
  10.  
  11.         Predicate<Integer> greaterThan5 = number -> number > 5; 
  12.         Predicate<Integer> lessThan9 = number -> number < 9; 
  13.         Predicate<Integer> filter = greaterThan5.and(lessThan9); 
  14.  
  15.         numberList = numberList.stream().filter(filter).collect(Collectors.toList()); 
  16.         System.out.println(numberList); 
  17.     } 

結果輸出:

  1. [6, 7, 8] 

示例 2:一個 Predicate 過濾數字集合中,數字大小在 5 至 9 之間的數字。

  1. List<Integer> numberList = Arrays.asList(3, 4, 5, 6, 7, 8, 9, 10); 
  2. numberList = numberList.stream().filter(x -> x > 5 && x < 9).collect(Collectors.toList()); 
  3. System.out.println(numberList); 

輸出結果;

  1. [6, 7, 8] 

4. Predicate negate

predicate.negate() 方法會返回一個與指定判斷相反的 Predicate。

示例:過濾數字集合中,數字不大于 5 的數字。

  1. import java.util.Arrays; 
  2. import java.util.List; 
  3. import java.util.function.Predicate; 
  4. import java.util.stream.Collectors; 
  5.  
  6. public class Java8PredicateNeagete { 
  7.  
  8.     public static void main(String[] args) { 
  9.         List<Integer> numberList = Arrays.asList(3, 4, 5, 6, 7, 8, 9, 10); 
  10.         Predicate<Integer> greaterThan5 = number -> number > 5; 
  11.  
  12.         numberList = numberList.stream().filter(greaterThan5.negate()).collect(Collectors.toList()); 
  13.         System.out.println(numberList); 
  14.     } 

輸出結果:

  1. [3, 4, 5] 

5. Predicate or

示例:過濾數字集合中,數字小于等于 5,或者大于等于 9 的數字。

  1. import java.util.Arrays; 
  2. import java.util.List; 
  3. import java.util.function.Predicate; 
  4. import java.util.stream.Collectors; 
  5.  
  6. public class Java8PredicateOr { 
  7.  
  8.     public static void main(String[] args) { 
  9.         List<Integer> numberList = Arrays.asList(3, 4, 5, 6, 7, 8, 9, 10); 
  10.  
  11.         Predicate<Integer> lessThan5 = number -> number <= 5; 
  12.         Predicate<Integer> greaterThan8 = number -> number >= 9; 
  13.  
  14.         numberList = numberList.stream().filter(lessThan5.or(greaterThan8)).collect(Collectors.toList()); 
  15.         System.out.println(numberList); 
  16.     } 

輸出結果:

  1. [3, 4, 5, 9, 10] 

6. Predicate 鏈式編程

Predicate 的 or() ,and(),negate() 方法可以隨意組合 Predicate,組合后的判斷邏輯是從左到右,從前到后,順次判斷。

如:(數字小于 5 ).and (數字大于 9 ).negate()。

解:(數字小于 5 )AND (數字大于 9 ) 對于任意數字都得 false,false.negate() 取相反 得 true。

所以,此判斷邏輯對于任意數字都為 true。

示例:Predicate 的 or() ,and(),negate() 方法組合使用。

  1. import java.util.ArrayList; 
  2. import java.util.Arrays; 
  3. import java.util.List; 
  4. import java.util.function.Predicate; 
  5.  
  6. public class Java8PredicateChain { 
  7.  
  8.     public static void main(String[] args) { 
  9.         List<Integer> numberList = Arrays.asList(3, 4, 5, 6, 7, 8, 9, 10); 
  10.  
  11.         Predicate<Integer> lessThan5 = number -> number <= 5; 
  12.         Predicate<Integer> greaterThan9 = number -> number >= 9; 
  13.  
  14.         // 小于等于 5 
  15.         System.out.println(filter(numberList, lessThan5)); 
  16.         // 大于 5 
  17.         System.out.println(filter(numberList, lessThan5.negate())); 
  18.         // 小于等于 5 或者大于等于 9 
  19.         System.out.println(filter(numberList, lessThan5.or(greaterThan9))); 
  20.         // ! (小于等于 5 AND 大于等于 9) 
  21.         System.out.println(filter(numberList, lessThan5.and(greaterThan9).negate())); 
  22.     } 
  23.  
  24.     public static <T> List<T> filter(List<T> list, Predicate<T> predicate) { 
  25.         List<T> resultList = new ArrayList<>(); 
  26.         for (T t : list) { 
  27.             if (predicate.test(t)) { 
  28.                 resultList.add(t); 
  29.             } 
  30.         } 
  31.         return resultList; 
  32.     } 

輸出結果:

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

7. Predicate 與對象

示例:過濾符合某些特征的狗。

  1. import java.util.ArrayList; 
  2. import java.util.List; 
  3. import java.util.function.Predicate; 
  4.  
  5. public class Java8PredicateObject { 
  6.  
  7.     public static void main(String[] args) { 
  8.         List<Dog> dogList = new ArrayList<>(); 
  9.         dogList.add(new Dog("哈士奇", 1)); 
  10.         dogList.add(new Dog("牧羊犬", 2)); 
  11.         dogList.add(new Dog("柯基", 3)); 
  12.         dogList.add(new Dog("柴犬", 3)); 
  13.  
  14.         // 找到 3歲的狗 
  15.         System.out.println(filter(dogList, dog -> dog.getAge().equals(3))); 
  16.         // 找到哈士奇信息 
  17.         Predicate<Dog> predicate = dog -> ("哈士奇").equals(dog.getName()); 
  18.         System.out.println(filter(dogList, predicate)); 
  19.     } 
  20.  
  21.     public static <T> List<T> filter(List<T> list, Predicate<T> predicate) { 
  22.         List<T> resultList = new ArrayList<>(); 
  23.         for (T t : list) { 
  24.             if (predicate.test(t)) { resultList.add(t); } 
  25.         } 
  26.         return resultList; 
  27.     } 
  28.  
  29. class Dog { 
  30.     private String name
  31.     private Integer age; 
  32.  
  33.     public Dog(String nameInteger age) { 
  34.         this.name = name
  35.         this.age = age; 
  36.     } 
  37.  
  38.     public String getName() { 
  39.         return name
  40.     } 
  41.  
  42.     public void setName(String name) { 
  43.         this.name = name
  44.     } 
  45.  
  46.     public Integer getAge() { 
  47.         return age; 
  48.     } 
  49.  
  50.     public void setAge(Integer age) { 
  51.         this.age = age; 
  52.     } 
  53.  
  54.     @Override 
  55.     public String toString() { 
  56.         return "Dog{" + 
  57.             "name='" + name + '\'' + 
  58.             ", age=" + age + 
  59.             '}'
  60.     } 

輸出結果:

  1. [Dog{name='柯基', age=3}, Dog{name='柴犬', age=3}] 
  2. [Dog{name='哈士奇', age=1}] 

BiPredicate 和 Predicate 函數接口一樣,都是返回一個布爾類型,唯一不同的是 Predicate 接受一個參數,而 BiPredicate 可以接受兩個不同類型的參數。

BiPredicate 在 Java 8 中源碼:

  1. package java.util.function
  2.  
  3. import java.util.Objects; 
  4. @FunctionalInterface 
  5. public interface BiPredicate<T, U> { 
  6.     boolean test(T t, U u); 
  7.  
  8.     default BiPredicate<T, U> and(BiPredicate<? super T, ? super U> other) { 
  9.         Objects.requireNonNull(other); 
  10.         return (T t, U u) -> test(t, u) && other.test(t, u); 
  11.     } 
  12.  
  13.     default BiPredicate<T, U> negate() { 
  14.         return (T t, U u) -> !test(t, u); 
  15.     } 
  16.  
  17.     default BiPredicate<T, U> or(BiPredicate<? super T, ? super U> other) { 
  18.         Objects.requireNonNull(other); 
  19.         return (T t, U u) -> test(t, u) || other.test(t, u); 
  20.     } 

 

責任編輯:武曉燕 來源: 未讀代碼
相關推薦

2021-04-14 07:33:02

Java函數式斷言

2023-07-26 07:13:55

函數接口Java 8

2019-08-05 08:05:27

Java開發代碼

2020-05-25 16:25:17

Java8Stream函數式接口

2023-10-23 14:16:01

Java函數式編程

2024-02-28 08:37:28

Lambda表達式Java函數式接口

2020-10-16 10:07:03

Lambda表達式Java8

2022-12-26 07:47:37

JDK8函數式接口

2024-07-18 08:00:00

2024-06-12 00:00:01

Java函數式接口

2015-12-21 11:47:22

Java 8組合函數

2023-12-22 16:39:47

Java函數式接口開發

2022-01-19 11:19:25

Java/接口/代碼

2015-09-28 14:54:08

Java函數式編程

2025-06-26 08:10:00

Java8函數

2015-09-30 09:34:09

java8字母序列

2024-08-19 02:00:00

FunctionJava8接口

2022-11-30 16:58:01

Java系統函數式

2020-09-22 11:00:11

Java技術開發

2021-05-26 05:36:52

登陸接口開發代碼
點贊
收藏

51CTO技術棧公眾號

亚洲一区二区三区爽爽爽爽爽| 日本人69视频| 中文字幕在线观看91| 日韩精品视频在线观看一区二区三区| 日韩大陆av| 久久av一区| 欧美刺激午夜性久久久久久久| 日韩成人av网站| 久草精品视频在线观看| 婷婷久久免费视频| 亚洲国产精品麻豆| 3d精品h动漫啪啪一区二区| 亚洲色成人网站www永久四虎| 美女精品导航| 国产福利一区在线观看| 久久久av亚洲男天堂| 亚洲精品自拍网| 九色国产在线观看| 亚洲一区二区三区免费在线观看| 精品剧情v国产在线观看在线| 国产91av视频在线观看| 欧洲精品在线播放| 九九热精品在线| 亚洲精品一区二区三区樱花| 欧美在线观看不卡| 精品国产一区二区三区成人影院| 亚洲精品国产a久久久久久| 91精品国产综合久久香蕉| 日日操免费视频| 欧美黄色网络| 亚洲欧洲av一区二区三区久久| 亚洲精品成a人在线观看| 福利欧美精品在线| 91动漫免费网站| 一区二区三区影视| 日本三级在线播放完整版| 午夜亚洲伦理| 国产一区二区美女视频| 凹凸日日摸日日碰夜夜爽1| 国产露出视频在线观看| 蜜臀va亚洲va欧美va天堂| 色青青草原桃花久久综合| 日本不卡一区二区在线观看| 中文在线免费视频| 国产欧美日韩中文久久| 国产在线精品一区免费香蕉| 久久精品视频2| 99久久综合| 日韩精品一区二区三区中文精品| www亚洲成人| 26uuu亚洲电影在线观看| 成人在线视频首页| 欧美hd在线| 国产亚洲短视频| 国产欧美一区二区三区久久| 伦av综合一区| 97在线精品| 在线观看亚洲区| 激情成人在线观看| 免费看男女www网站入口在线| 久久精品亚洲麻豆av一区二区| 国产在线a不卡| 中文字幕精品在线观看| 国产精品sm| 日韩精品一区国产麻豆| 性一交一黄一片| 中文在线免费二区三区| 大伊人狠狠躁夜夜躁av一区| 一区二区三区我不卡| 国产视频网址在线| 中文字幕av资源一区| 97久久精品午夜一区二区| 国产精选久久久| 美女黄色成人网| 欧洲美女7788成人免费视频| 外国一级黄色片| 亚洲婷婷丁香| 日韩欧美一区二区视频| 69av视频在线播放| 国产精品丝袜白浆摸在线| 91n在线视频| 欧美1区二区| 欧美久久久久久久久| cao在线观看| 在线看黄色av| 久久综合色综合88| 国产精品国产三级欧美二区| 91精品国产乱码久久久久| 亚洲美女91| 中文字幕亚洲字幕| avtt香蕉久久| 日韩中文一区二区| 精品视频在线视频| 成人观看免费完整观看| 中文字幕伦理免费在线视频| 一级精品视频在线观看宜春院| 亚洲欧美日韩综合一区| 自拍亚洲图区| 欧美性猛交丰臀xxxxx网站| 久操手机在线视频| 黄色污网站在线观看| 一区二区三区在线视频观看58| 国产精品专区在线| 女人天堂av在线播放| 精品欧美一区二区三区| 天堂网在线免费观看| av不卡一区二区| 精品区一区二区| 国产精品成人一区二区三区电影毛片 | 日本一区中文字幕| 亚洲91精品在线| 久久97人妻无码一区二区三区| 午夜久久免费观看| xx视频.9999.com| 成人精品一二三区| 久草成人在线视频| 亚洲另类春色校园小说| 精品国产美女在线| www.国产成人| 99日韩精品| 91久久精品美女高潮| 国产男男gay体育生网站| 狠狠狠色丁香婷婷综合激情| 国产在线视频2019最新视频| 免费国产羞羞网站视频| kk眼镜猥琐国模调教系列一区二区| 国产精品区一区二区三在线播放| 成人综合影院| 自拍偷拍亚洲激情| 777久久久精品一区二区三区| 国产调教在线| 日韩一区二区高清| 一级黄色电影片| 亚洲精品一区二区三区在线| 精品毛片乱码1区2区3区| 亚洲a∨无码无在线观看| 亚洲在线一区| 激情欧美一区二区三区中文字幕| 男人天堂资源在线| 欧美国产一区二区在线观看| 日韩在线综合网| 黄瓜视频成人app免费| 精品视频1区2区3区| 中文字幕在线看高清电影| 91久久视频| 国产a一区二区| 日韩成人黄色| 午夜精品久久久久久| 成人性视频欧美一区二区三区| 欧美性www| 在线观看成人黄色| 无码久久精品国产亚洲av影片| 精品一区二区三区不卡 | 久久99久国产精品黄毛片色诱| 精品久久亚洲| 欧美大香线蕉线伊人久久国产精品| 爱爱爱爱免费视频| 思热99re视热频这里只精品 | 99精品人妻少妇一区二区| 激情亚洲另类图片区小说区| 久久男人资源视频| 91在线视频免费播放| 激情欧美日韩一区二区| 在线观看国产一区| 日韩精品手机在线| 一本一道久久综合狠狠老精东影业| 97久久天天综合色天天综合色hd| a毛片在线播放| 午夜精品久久久久久久99樱桃| 少妇极品熟妇人妻无码| 欧美精品第一区| 九九视频直播综合网| 国产高清视频免费| 欧美极品aⅴ影院| 日日噜噜噜噜久久久精品毛片| eeuss鲁片一区二区三区| 国自产精品手机在线观看视频| 婷婷视频在线观看| 亚洲精选免费视频| 日韩中文字幕免费在线| 欧美精品一区二区三区精品| 欧美精品久久久久a| 欧美在线视频精品| 亚洲av无码片一区二区三区| 国产成人日日夜夜| 91黄色在线看| 亚洲欧洲日韩精品在线| 亚洲欧美日韩中文视频| 国产一级片免费观看| 老司机精品视频导航| 久久综合中文色婷婷| 啦啦啦中文在线观看日本| 精品黑人一区二区三区久久| 国产免费观看av| 成人黄色777网| 国产免费内射又粗又爽密桃视频| 亚洲国产伊人| 欧美精品成人91久久久久久久| 久久精品a一级国产免视看成人 | 一级黄色短视频| 玉足女爽爽91| 欧美激情亚洲色图| 一区二区黄色| 亚洲一区二区在| 成人精品高清在线视频| 国产亚洲a∨片在线观看| 国产农村妇女毛片精品久久| 亚洲电影一级黄| 精品伦精品一区二区三区视频密桃| 国产激情91久久精品导航| 白嫩少妇丰满一区二区| 午夜久久影院| 99影视tv| 久草在线视频资源| www.久久久.com| 久久久久久久久久久久av| 91.xxx.高清在线| 日韩av网址在线观看| 日本少妇激情舌吻| 国产精品日韩精品欧美在线| 亚洲这里只有精品| 国产精品久久久一区二区| 午夜探花在线观看| 亚洲精品a区| 国产精品专区第二| 都市激情亚洲一区| 在线日韩欧美视频| 日批免费在线观看| 日韩三级精品电影久久久| 中日韩在线观看视频| 黄色一区二区三区| 精品无人区无码乱码毛片国产| 国产不卡在线一区| www.99热这里只有精品| 欧美激情91| mm131午夜| 天天射天天综合网| 亚洲精品一区国产精品| 精品72久久久久中文字幕| 国产精品羞羞答答| 久久久一本精品| 爱福利视频一区| 在线观看免费黄视频| 在线免费观看羞羞视频一区二区| 青青色在线视频| 亚洲码在线观看| 免费在线超碰| 亚洲欧美一区二区三区四区 | 亚洲视频一区在线播放| 中文字幕乱码亚洲精品一区| 亚洲av无码一区二区三区观看| 成人午夜av电影| 美女扒开腿免费视频| 高清不卡一二三区| 免费黄色a级片| 国产不卡视频一区| 久草免费资源站| 成人动漫一区二区三区| 91丨porny丨对白| 91亚洲精品久久久蜜桃网站| 不卡的av中文字幕| 毛片不卡一区二区| 在线视频一二区| 亚洲一区自拍| 国语对白做受xxxxx在线中国| 日韩精品成人一区二区在线| av 日韩 人妻 黑人 综合 无码| 影音先锋日韩在线| 欧美精品一区二区三区在线四季| 日韩三级毛片| 日日骚一区二区网站| 久久国产精品免费精品3p| 韩国成人av| 国产欧美日韩| 亚洲国产一区二区三区在线播| 99久久99热这里只有精品| 337p亚洲精品色噜噜狠狠p| 99热这里只有精品8| www.日日操| 韩国女主播成人在线观看| 国产人妖在线观看| 久久综合狠狠综合久久激情| 老司机精品免费视频| 亚洲欧美另类久久久精品| 国产第100页| 在线观看亚洲a| 麻豆久久久久久久久久| 在线一区二区观看| a在线观看视频| 精品视频在线播放免| 国产91绿帽单男绿奴| 91精品国产入口在线| 亚洲永久精品一区| 日韩一区二区三区三四区视频在线观看| 亚洲a视频在线| 亚洲网站在线看| 182tv在线播放| 日本高清不卡在线| 欧美高清hd| 日韩电影免费观看高清完整| 色综合色综合| 亚洲国产精品一区二区第四页av| 自拍偷拍欧美| 又粗又黑又大的吊av| 国内精品视频一区二区三区八戒| 黄色网址在线视频| 亚洲天堂福利av| 欧美偷拍第一页| 欧美色videos| 国产成人毛毛毛片| 在线观看欧美www| 福利影院在线看| 91久久久久久| 国产伦精品一区二区三区视频| 欧美激情亚洲天堂| 美女视频黄a大片欧美| 丰满少妇一区二区| 久久天堂av综合合色蜜桃网| 曰本女人与公拘交酡| 亚洲精品久久久蜜桃| 黄色av一区二区| 日韩电影第一页| 黄污视频在线观看| 欧美中在线观看| 91大神精品| 天天做天天爱天天高潮| 日韩精品三区四区| 中文字幕xxx| 精品福利在线视频| 亚洲伦理在线观看| 色综合久综合久久综合久鬼88| 深夜国产在线播放| 97精品一区二区视频在线观看| 国产视频网站一区二区三区| 成人黄色片视频网站| 国产高清一区| 中文字幕第36页| 久久精品欧美一区二区三区不卡 | 亚洲一级在线| 国产精品300页| 中日韩av电影| 无码人妻av免费一区二区三区| 亚洲精品国产精品乱码不99按摩| 日本高清成人vr专区| 91美女片黄在线观| 99国产**精品****| 中文字幕22页| 亚洲欧美激情一区二区| 国产乱淫a∨片免费视频| 久久色在线播放| 国产污视频在线播放| 国产欧美一区二区三区不卡高清| 国产永久精品大片wwwapp| 久久久一本二本三本| 久久综合久久综合亚洲| 老熟妇仑乱一区二区av| 亚洲色图国产精品| a级在线观看| av在线不卡一区| 亚洲激情网址| 老鸭窝一区二区| 在线精品亚洲一区二区不卡| 国产综合视频一区二区三区免费| 日韩av成人在线| 亚洲午夜免费| 国产真实老熟女无套内射| gogo大胆日本视频一区| 久久久久久久久久影院| 亚洲欧美国产视频| 国产精品久久久久久久久免费高清 | 日韩欧美理论片| 亚洲午夜影视影院在线观看| 色欲av永久无码精品无码蜜桃 | 国产香蕉一区二区三区在线视频 | 成人免费高清| 国产麻豆乱码精品一区二区三区| 国产精品日韩精品欧美精品| 无码 人妻 在线 视频| 欧美久久久久久久久久| heyzo中文字幕在线| 国产美女精品视频| 欧美日韩国内| 波多野结衣av在线观看| 欧美精品1区2区3区| 678在线观看视频| 天堂社区 天堂综合网 天堂资源最新版| 韩国理伦片一区二区三区在线播放| 国产一级片网址| 国产一区二区三区丝袜| 欧美区一区二区| 黄色动漫网站入口| 亚洲影院一区| 国产精品高潮呻吟久久av无限| 四虎国产成人精品免费一女五男| 99久精品视频在线观看视频| 日本不卡高字幕在线2019| 99在线精品视频免费观看20| 精品国偷自产国产一区| 日韩欧美一区二区三区免费观看 | 国产97在线|日韩|