日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java 8 新特性之Stream API

發(fā)布時(shí)間:2023/11/29 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 8 新特性之Stream API 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 概述

1.1 簡介

Java 8 中有兩大最為重要的改革,第一個(gè)是 Lambda 表達(dá)式,另外一個(gè)則是 Stream API(java.util.stream.*)。

Stream 是 Java 8 中處理集合的關(guān)鍵抽象概念,它可以指定你希望對集合進(jìn)行的操作,可以執(zhí)行非常復(fù)雜的查找、過濾和映射數(shù)據(jù)等操作。使用 Stream API 對集合數(shù)據(jù)進(jìn)行,就類似于使用 SQL 執(zhí)行的數(shù)據(jù)庫查詢。也可以使用 Stream API 來并行執(zhí)行操作。簡而言之,Stream API 提供了一種高效且易于使用的處理數(shù)據(jù)的方式。

1.2 流(Stream)到底是什么呢?

是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列?!凹现v的是數(shù)據(jù),流講的是計(jì)算”

Stream(流)是一個(gè)來自數(shù)據(jù)源的元素隊(duì)列并支持聚合操作

  • 元素是特定類型的對象,形成一個(gè)隊(duì)列。 Java中的Stream并不會存儲元素,而是按需計(jì)算。
  • 數(shù)據(jù)源 流的來源。 可以是集合,數(shù)組,I/O channel, 產(chǎn)生器generator 等。
  • 聚合操作 類似SQL語句一樣的操作, 比如 filter, map, reduce, find, match, sorted 等。

和以前的 Collection 操作不同, Stream 操作還有兩個(gè)基礎(chǔ)的特征:

  • Pipelining: 中間操作都會返回流對象本身。 這樣多個(gè)操作可以串聯(lián)成一個(gè)管道, 如同流式風(fēng)格(fluent style)。 這樣做可以對操作進(jìn)行優(yōu)化, 比如延遲執(zhí)行(laziness)和短路( short-circuiting)。
  • 內(nèi)部迭代: 以前對集合遍歷都是通過 Iterator 或者 For-Each 的方式, 顯式的在集合外部進(jìn)行迭代, 這叫做外部迭代。 Stream提供了內(nèi)部迭代的方式, 通過訪問者模式(Visitor)實(shí)現(xiàn)。

注意 :

  • Stream 自己不會存儲元素
  • Stream 不會改變源對象,相反,它們會返回一個(gè)持有結(jié)果的新 Stream
  • Stream 操作時(shí)延遲執(zhí)行的。這意味著它們會等到需要結(jié)果的時(shí)候才執(zhí)行
  • 1.3 Stream 操作的三個(gè)步驟

  • 創(chuàng)建 Stream

    • 一個(gè)數(shù)據(jù)源(集合、數(shù)組等),獲取一個(gè)流
  • 中間操作(聚合操作)

    • 一個(gè)中間操作鏈,對數(shù)據(jù)源的數(shù)據(jù)進(jìn)行處理
  • 終止操作(終端操作)

    • 一個(gè)終止操作,執(zhí)行中間操作鏈,并產(chǎn)生結(jié)果
  • 2. 創(chuàng)建 Stream(流)

    在 Java 8 中, 集合接口有兩個(gè)方法來生成流:

    • stream() ? 為集合創(chuàng)建串行流。
    • parallelStream() ? 為集合創(chuàng)建并行流。

    創(chuàng)建 Stream 的 5 種方式

    @Test public void t1() {// 1. Collection 提供了兩個(gè)方法 stream() 與 parallelStream()List<String> list = new ArrayList<>();Stream<String> stream = list.stream(); //獲取一個(gè)順序流Stream<String> parallelStream = list.parallelStream(); //獲取一個(gè)并行流// 2. 通過 Arrays 中的 stream() 獲取一個(gè)數(shù)組流Integer[] nums = new Integer[10];Stream<Integer> stream1 = Arrays.stream(nums);// 3. 通過 Stream 類中靜態(tài)方法 of()Stream<Integer> stream2 = Stream.of(1,2,3,4,5,6);// 4. 創(chuàng)建無限流 - 迭代Stream<Integer> stream3 = Stream.iterate(0, (x) -> x + 2).limit(20);stream3.forEach(System.out::println);// 5. 創(chuàng)建無限流 - 生成Stream<Double> stream4 = Stream.generate(Math::random).limit(5);stream4.forEach(System.out::println); }

    3. Stream 的中間操作

    多個(gè)中間操作可以連接起來形成一個(gè)流水線,除非流水線上觸發(fā)終止操作,否則中間操作不會執(zhí)行任何處理,而是在終止操作時(shí)一次性全部處理,稱為“惰性求值”

    提供基礎(chǔ)的操作數(shù)據(jù)

    List<Employee> emps = Arrays.asList(new Employee(1, "a1", 28, 3888.99),new Employee(2, "a2", 49, 336.66),new Employee(3, "a3", 18, 3323.33),new Employee(4, "a4", 38, 6666.77),new Employee(5, "a5", 8, 80.88),new Employee(5, "a5", 8, 80.88),new Employee(5, "a5", 8, 80.88),new Employee(6, "a6", 56, 100.66) );

    3.1 篩選與切片

    • filter 接收Lambda,從流中排除某些元素。
    • limit 截?cái)嗔?#xff0c;使元素不超過給定數(shù)量
    • skip(n) 跳過元素,返回一個(gè)扔掉了前 n 個(gè)元素的流,若流中元素不足 n 個(gè),則返回一個(gè)空流,與 limit 互補(bǔ)
    • distinct 篩選去重,通過流所生成元素的 hashCode() 和 equals() 去除重復(fù)元素

    1. filter 接收Lambda,從流中排除某些元素

    @Test public void t2() {// 中間操作:不會執(zhí)行任何操作Stream<Employee> stream = emps.stream().filter((e) -> {System.out.println("中間操作");return e.getAge() > 20;});// 終止操作:一次性執(zhí)行全部內(nèi)容,即"惰性求值"stream.forEach(System.out::println);}

    2. limit 截?cái)嗔?/h4> @Test public void t3() {emps.stream().filter((e) -> {// 當(dāng)達(dá)到 limit 為 2 時(shí)將不繼續(xù)遍歷,稱為短路,以提高效率System.out.println("短路");return e.getSalary() > 3000;}).limit(2).forEach(System.out::println); }

    3. skip 跳過元素

    @Test public void t4() {emps.stream().filter(e -> e.getSalary() > 100).skip(2).forEach(System.out::println); }

    4. distinct 篩選

    @Test public void t5() {emps.stream().distinct().forEach(System.out::println); }

    要使用 distinct 需要重寫 Employee 的 hashCode() 和 equals() 方法

    @Override public int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + id;result = prime * result + ((name == null) ? 0 : name.hashCode());long temp;temp = Double.doubleToLongBits(salary);result = prime * result + (int) (temp ^ (temp >>> 32));return result; }@Override public boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Employee other = (Employee) obj;if (age != other.age)return false;if (id != other.id)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;if (Double.doubleToLongBits(salary) != Double.doubleToLongBits(other.salary))return false;return true; }

    3.2 映射

    • map 接收 Lambda,將元素轉(zhuǎn)換成其它形式或提取信息。接收一個(gè)函數(shù)作為參數(shù),該函數(shù)會被應(yīng)用到每個(gè)元素上,并將其映射成一個(gè)新的元素
    • flatMap 接收一個(gè)函數(shù)作為參數(shù),將流中的每個(gè)值都換成另一個(gè)流,然后把所有流連接成一個(gè)流

    1. map

    將原有的元素進(jìn)過函數(shù)處理,讓后映射(覆蓋)成一個(gè)新的元素

    @Test public void t6() {List<String> list = Arrays.asList("aa","bb","cc","dd");list.stream().map((s) -> s.toUpperCase()).forEach(System.out::println);System.out.println("------------------------------------");emps.stream().map(Employee::getName).forEach(System.out::println); }

    2. flatMap

    基礎(chǔ)方法

    /*** 將字符串分解成字符 list,并返回 Stream* * @param str 待分解字符串* @return Stream*/ public static Stream<Character> filterCharacter(String str) {List<Character> list = new ArrayList<>();for (Character ch : str.toCharArray()) {list.add(ch);}return list.stream(); }

    正常情況下,當(dāng) filterCharacter 返回的也是一個(gè) Stream 時(shí),相當(dāng)于流里面還有子流,接收的結(jié)果就是 Stream<Stream<Character>>,如果我們要進(jìn)行遍歷的話,就需要使用兩層 forEach 才能遍歷完成。

    @Test public void t7() {List<String> list = Arrays.asList("aa","bb","cc","dd");Stream<Stream<Character>> stream = list.stream().map(StreamTest1::filterCharacter);// 因?yàn)?Stream 還是 Stream 所以需要嵌套 forEach 才能進(jìn)行遍歷stream.forEach((sm) -> {sm.forEach(System.out::println);}); }

    但如果使用 flatMap 就可以將每個(gè)子流都合并成一個(gè)流,這樣遍歷的時(shí)候只使用一層 forEach 就可以了

    @Test public void t8() {List<String> list = Arrays.asList("aa","bb","cc","dd");Stream<Character> stream = list.stream().flatMap(StreamTest1::filterCharacter);stream.forEach(System.out::println); }

    3.3 排序

    • sorted 自然排序(Comparable)
    • sorted(Comparator com) 定制排序(Comparator)

    1. sorted 自然排序

    @Test public void t9() {List<String> list = Arrays.asList("cc","aa","dd","bb");list.stream().sorted().forEach(System.out::println); }

    2. sorted(Comparator com) 定制排序

    @Test public void t10() {emps.stream().sorted((e1,e2) -> Integer.compare(e1.getAge(),e2.getAge())).forEach(System.out::println); }

    4. Stream 終止操作

    4.1 查找與匹配

    • allMatch 檢查是否匹配所有元素
    • anyMatch 檢查是否至少匹配一個(gè)元素
    • noneMatch 檢查是否沒有匹配的元素
    • findFirst 返回第一個(gè)元素
    • findAny 返回當(dāng)前流中的任意元素
    • count 返回流中元素的總個(gè)數(shù)
    • max 返回流中最大值
    • min 返回流中最小值

    基礎(chǔ)數(shù)據(jù)

    List<Employee> emps = Arrays.asList(new Employee(1, "a1", 28, 3888.99, Employee.Status.BUSY),new Employee(2, "a2", 49, 336.66, Employee.Status.FREE),new Employee(3, "a3", 18, 3323.33, Employee.Status.VOCATION),new Employee(4, "a4", 38, 6666.77, Employee.Status.FREE),new Employee(5, "a5", 8, 80.88, Employee.Status.VOCATION),new Employee(6, "a6", 56, 100.66, Employee.Status.BUSY) );

    1. allMatch 檢查是否匹配所有元素

    @Test public void t1() {boolean bool = emps.stream().allMatch((e) -> e.getStatus().equals(Employee.Status.BUSY));System.out.println(bool); }

    2. anyMatch 檢查是否至少匹配一個(gè)元素

    @Test public void t2() {boolean bool = emps.stream().anyMatch((e) -> e.getStatus().equals(Employee.Status.BUSY));System.out.println(bool); }

    3. noneMatch 檢查是否沒有匹配的元素

    @Test public void t3() {boolean bool = emps.stream().noneMatch((e) -> e.getStatus().equals(Employee.Status.BUSY));System.out.println(bool); }

    4. findFirst 返回第一個(gè)元素

    @Test public void t4() {Optional<Employee> op = emps.stream().sorted((e1, e2) -> Double.compare(e1.getSalary(), e2.getSalary())).findFirst();System.out.println(op.get()); }

    5. findAny 返回當(dāng)前流中的任意元素

    @Test public void t5() {Optional<Employee> op = emps.stream().filter((e) -> e.getStatus().equals(Employee.Status.FREE)).findAny();System.out.println(op.get()); }

    6. count 返回流中元素的總個(gè)數(shù)

    /*** 查詢空閑人數(shù)*/ @Test public void t6() {Long count = emps.stream().filter((e) -> e.getStatus().equals(Employee.Status.FREE)).count();System.out.println("count : " + count); }

    7. max 返回流中最大值

    /*** 查詢工資最高的人*/ @Test public void t7() {Optional<Employee> op = emps.stream().max((e1,e2) -> Double.compare(e1.getSalary(),e2.getSalary()));System.out.println(op.get()); }

    8. min 返回流中最小值

    /*** 獲取工資最少的人的工資*/ @Test public void t8() {Optional<Double> op = emps.stream().map(Employee::getSalary).min(Double::compare);System.out.println(op.get()); }

    4.2 規(guī)約(reduce)

    • T reduce(T identity, BinaryOperator<T> accumulator) 可以將流中的元素反復(fù)結(jié)合起來,得到一個(gè)值,返回 T
    • Optional<T> reduce(BinaryOperator<T> accumulator) 可以將流中的元素反復(fù)結(jié)合起來,得到一個(gè)值,返回 Optional<T>
    備注:map 和 reduce 的連接通常稱為 map-reduce 模式,因 Google 用它來進(jìn)行網(wǎng)絡(luò)搜索而出名

    1. 實(shí)例

    @Test public void t9() {List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);Integer sum = list.stream().reduce(0, (x, y) -> x + y);System.out.println("sum : " + sum); } 說明 :
    首先將起始值 0 給 x,然后在流中取出一個(gè)元素 1 給了 y,然后 x y 相加結(jié)果為 1,再賦給 x,然后再取出一個(gè)元素 2 賦給y,然后 x y 相加結(jié)果為 3,以此類推

    2. 實(shí)例

    /*** 計(jì)算所有人工資的總和*/ @Test public void t10() {Optional<Double> op = emps.stream().map(Employee::getSalary).reduce(Double::sum);System.out.println("Salary Sum : " + op.get()); }

    4.3 收集(collect)

    • collect 將流轉(zhuǎn)換為其它形式,接收一個(gè) Collector(收集器) 接口的實(shí)現(xiàn),用于給 Stream 中元素做匯總的方法

    Collector 接口中方法的實(shí)現(xiàn)決定了如何對流執(zhí)行收集操作(如收集到List、Set、Map)。但是 Collector 實(shí)現(xiàn)類提供了很多靜態(tài)方法,可以方便地創(chuàng)建常見收集器實(shí)例,具體方法與實(shí)例如下表:

    1. 實(shí)例 - 將結(jié)果收集到 List、Set 等容器

    @Test public void t1() {List<String> list = emps.stream().map(Employee::getName).collect(Collectors.toList());list.forEach(System.out::println);System.out.println("------------------------------------------");Set<String> set = emps.stream().map(Employee::getName).collect(Collectors.toSet());set.forEach(System.out::println);System.out.println("------------------------------------------");HashSet<String> hs = emps.stream().map(Employee::getName).collect(Collectors.toCollection(HashSet::new));hs.forEach(System.out::println); }

    2. 實(shí)例 - 計(jì)算

    @Test public void t2() {Long count = emps.stream().collect(Collectors.counting());System.out.println("總數(shù) : " + count);System.out.println("------------------------------------------");Double avg = emps.stream().collect(Collectors.averagingDouble(Employee::getSalary));System.out.println("工資平均值 : " + avg);System.out.println("------------------------------------------");Double sum = emps.stream().collect(Collectors.summingDouble(Employee::getSalary));System.out.println("工資總和 : " + sum);System.out.println("------------------------------------------");Optional<Employee> max = emps.stream().collect(Collectors.maxBy((e1,e2) -> Double.compare(e1.getSalary(),e2.getSalary())));System.out.println("工資最多的員工 : " + max.get());System.out.println("------------------------------------------");Optional<Double> min = emps.stream().map(Employee::getSalary).collect(Collectors.minBy(Double::compare));System.out.println("工資最少的員工 : " + min.get());}

    3. 實(shí)例 - 計(jì)算的另一種實(shí)現(xiàn)方式

    @Test public void t6() {DoubleSummaryStatistics dss = emps.stream().collect(Collectors.summarizingDouble(Employee::getSalary));System.out.println("sum : " + dss.getSum());System.out.println("max : " + dss.getMax());System.out.println("avg : " + dss.getAverage());System.out.println("count : " + dss.getCount());System.out.println("min : " + dss.getMin()); }

    4.4 分組

    分組就相當(dāng)于 SQL 語句中的 group by,按一個(gè)類別或多個(gè)類別進(jìn)行分組

    1. 實(shí)例

    @Test public void t3() {Map<Employee.Status, List<Employee>> map = emps.stream().collect(Collectors.groupingBy(Employee::getStatus));// 格式化輸出,方便查看Gson gson = new GsonBuilder().setPrettyPrinting().create();System.out.println(gson.toJson(map)); }

    2. 實(shí)例 多級分組

    @Test public void t4() {Map<Employee.Status, Map<String, List<Employee>>> map = emps.stream().collect(Collectors.groupingBy(Employee::getStatus, Collectors.groupingBy((e) -> {if (e.getAge() <= 35) {return "青年";} else if (e.getAge() <= 50) {return "中年";} else {return "老年";}})));// 格式化輸出,方便查看Gson gson = new GsonBuilder().setPrettyPrinting().create();System.out.println(gson.toJson(map)); }

    4.5 分區(qū)

    分區(qū)是一種特殊的分組,結(jié)果 map 至少包含兩個(gè)不同的分組一個(gè)true,一個(gè)false

    @Test public void t5() {Map<Boolean,List<Employee>> map = emps.stream().collect(Collectors.partitioningBy((e) -> e.getSalary() > 1000));// 格式化輸出,方便查看Gson gson = new GsonBuilder().setPrettyPrinting().create();System.out.println(gson.toJson(map)); }

    4.6 連接

    將結(jié)果進(jìn)行連接

    @Test public void t8() {String s1 = emps.stream().map(Employee::getName).collect(Collectors.joining());System.out.println("連接 : " + s1);String s2 = emps.stream().map(Employee::getName).collect(Collectors.joining(","));System.out.println("添加中間分隔符 : " + s2);String s3 = emps.stream().map(Employee::getName).collect(Collectors.joining(",", "==", "=="));System.out.println("添加左右分隔符 : " + s3); } 本文首發(fā)于凌風(fēng)博客:Java 8 新特性之Stream API
    作者:凌風(fēng)

    總結(jié)

    以上是生活随笔為你收集整理的Java 8 新特性之Stream API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    操操综合网 | 国产午夜精品一区二区三区四区 | 久久www免费视频 | 亚洲全部视频 | 人人看人人做人人澡 | 久久精品国产一区二区三区 | av一区二区在线观看中文字幕 | 91福利区一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 一区二区三区免费在线观看 | 日日夜夜人人精品 | 天天干天天操天天干 | 黄色精品一区 | 91丨九色丨丝袜 | 91精品啪在线观看国产线免费 | 男女视频久久久 | 色吊丝在线永久观看最新版本 | 亚州精品在线视频 | 在线观看国产一区二区 | 综合激情 | 亚洲妇女av | 色婷婷导航 | av不卡在线看 | 91亚洲精品国偷拍自产在线观看 | 日本黄色免费看 | 一区二区三区电影大全 | 999国内精品永久免费视频 | 丁香六月激情婷婷 | 天天射天天干天天 | 久久国产电影院 | 亚洲一区在线看 | av片中文 | 99久久久久久久久 | 精品伊人久久久 | 玖草在线观看 | 亚洲成人免费在线 | 国产色视频123区 | 九九热精品在线 | 精品一二三四视频 | 欧美日韩在线视频一区 | 国产福利精品一区二区 | 美女黄视频免费看 | 999久久久免费精品国产 | 最近日本mv字幕免费观看 | 超级碰碰碰碰 | 一级理论片在线观看 | 超碰日韩在线 | 涩涩在线| 久久久www成人免费精品张筱雨 | 天天操天天舔天天爽 | 日本精品视频一区 | 伊人久久五月天 | 欧美一区,二区 | 久久黄色免费观看 | 91成版人在线观看入口 | 人人射av | 欧美一区二区日韩一区二区 | 免费电影播放 | www最近高清中文国语在线观看 | 久久不卡日韩美女 | 亚洲理论电影网 | 日本久久电影 | 国产精品国内免费一区二区三区 | 97涩涩视频 | 永久黄网站色视频免费观看w | 亚洲aⅴ一区二区三区 | 99精品视频在线观看免费 | 久久五月天综合 | 久久夜色精品国产欧美一区麻豆 | 美女网站一区 | 97超碰国产精品女人人人爽 | 香蕉久草在线 | 国产精品美女在线 | 色偷偷97 | 免费h精品视频在线播放 | 中文字幕丝袜美腿 | 99re国产 | 伊人超碰在线 | 亚洲精品久久久久中文字幕二区 | 久久99亚洲网美利坚合众国 | 午夜精品一区二区三区在线 | 国产一区免费在线 | 亚洲激情在线观看 | 中文字幕亚洲精品日韩 | 国产日韩欧美网站 | 久久久久国产精品视频 | 三级在线国产 | 国产精品va最新国产精品视频 | av一本久道久久波多野结衣 | 天天操天天爱天天干 | 久久永久免费视频 | 免费黄色网址大全 | 五月天婷亚洲天综合网鲁鲁鲁 | 中文字幕精品www乱入免费视频 | 四川bbb搡bbb爽爽视频 | 中午字幕在线观看 | 国产区精品区 | 国产69久久 | 欧美成年黄网站色视频 | 精品免费久久久久 | 日韩亚洲国产精品 | 亚洲专区中文字幕 | 国产一级视屏 | 看av免费网站 | 欧美a√在线 | 国产在线观看国语版免费 | 天天插天天干天天操 | 成人h视频在线播放 | 日韩精品一区二区三区高清免费 | 国产在线a | 国产精品久久久久久久久久久免费 | 久久与婷婷 | 久草在线视频免赞 | 欧美一级黄色片 | 久久精品中文字幕 | 欧美成人理伦片 | 三级在线视频播放 | 国产高清永久免费 | 久久久国产在线视频 | 精品国产伦一区二区三区 | 久草在线免费看视频 | 国产视频一区二区在线观看 | 免费国产一区二区视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 免费三级a | 国产久草在线观看 | 青草草在线 | 午夜av免费看 | 国产日产精品一区二区三区四区的观看方式 | 麻豆一区在线观看 | 亚洲成av人片一区二区梦乃 | 午夜电影中文字幕 | 久久99精品视频 | 91污在线 | 免费色视频| 国产成人精品午夜在线播放 | 天天操天天爱天天干 | 日韩大片免费观看 | 国产精品久久久久aaaa | 国产人成精品一区二区三 | 超碰97人人在线 | av网站地址 | 日韩在线电影一区二区 | 中文字幕乱偷在线 | 亚洲精品高清视频 | 精品国产色 | 久久69精品久久久久久久电影好 | 国产视频 亚洲精品 | 中文字幕在线观看第二页 | 开心激情五月网 | 亚洲成 人精品 | 人人爱爱人人 | 亚洲视频在线免费看 | 五月婷婷中文 | 视频在线一区二区三区 | 免费观看全黄做爰大片国产 | 亚洲精品久久视频 | 97超碰人人澡人人爱学生 | 日本中文字幕视频 | 夜夜躁狠狠躁日日躁视频黑人 | 国产精品99久久久久人中文网介绍 | 一级黄色av | 狠狠插狠狠干 | 亚洲黄色免费观看 | 色开心| 91视频a| 在线观看视频福利 | 精品欧美一区二区三区久久久 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 精品在线观 | 久久久久久久久网站 | 免费视频一级片 | 成人午夜电影网站 | 亚洲精品在线资源 | av片中文字幕 | 在线看国产视频 | 久久国产精品小视频 | 国产精品黄色 | 久久久伊人网 | 青青河边草手机免费 | 开心丁香婷婷深爱五月 | adc在线观看 | 成人av网址大全 | 亚洲精品影视 | 免费三及片 | 亚洲精品国产精品久久99热 | 国产亚洲免费的视频看 | av888.com| 99精品视频观看 | 91.dizhi永久地址最新 | 欧美日韩在线第一页 | 久久在线免费观看视频 | 免费毛片aaaaaa | 人人插人人| 精品国产乱码久久久久久三级人 | www狠狠操| 色婷婷九月 | av一区在线播放 | 月下香电影 | 激情五月激情综合网 | 国产精品ⅴa有声小说 | 色综合久久久 | 亚洲 中文 在线 精品 | 午夜影院一级片 | av电影亚洲 | 欧美日韩在线精品一区二区 | 免费人成在线观看网站 | 国产精品久久久久久久av大片 | 成年人在线观看视频免费 | 97在线观看免费高清完整版在线观看 | 亚洲综合在线五月 | 精品99视频 | 欧美做受高潮电影o | 精品亚洲va在线va天堂资源站 | 成人av日韩| 亚洲欧美日韩国产一区二区 | 精品视频免费观看 | 欧美精品你懂的 | 干av在线 | 色网免费观看 | 51精品国自产在线 | 九九九电影免费看 | 成人黄色在线电影 | 国产精品av久久久久久无 | 亚洲国产三级在线观看 | 成人av观看 | 成人a免费| 五月天综合网 | 黄a在线 | 日韩手机在线观看 | 免费视频黄 | 高清免费av在线 | 国产精品久久久av | 午夜精品久久久久久久久久久久久久 | 色多多污污在线观看 | 99这里都是精品 | 丁香色综合 | 久草在线资源观看 | 亚洲欧美色婷婷 | 天天爱av导航 | 激情网第四色 | 日韩动漫免费观看高清完整版在线观看 | 亚洲区色 | 最近免费中文字幕大全高清10 | av在线影视| 久久激情视频网 | 久久国产精品免费一区二区三区 | 国产999精品久久久久久 | 日韩免费三区 | 伊人久久电影网 | 黄色三级网站在线观看 | av高清网站在线观看 | 91丨九色丨国产丨porny精品 | 久久精品视频在线 | 久久综合九色综合97_ 久久久 | 中文字幕av最新更新 | 日日操天天操狠狠操 | 密桃av在线 | 久久视频中文字幕 | 日本中文一级片 | 日日爱av | 亚洲视频 一区 | 五月婷婷av在线 | 九九热免费在线观看 | 中文字幕一区三区 | 美女av电影 | 啪啪凸凸 | 日韩精品一区二区在线观看视频 | 久久久久久片 | 久久视频国产精品免费视频在线 | 成人h视频在线播放 | 免费在线观看污网站 | 伊人婷婷色| 青青草国产成人99久久 | 五月婷婷综合网 | 精品国产欧美一区二区三区不卡 | 欧美日韩午夜 | 国产一级做a爱片久久毛片a | 日韩欧美视频免费在线观看 | 色综合久久中文字幕综合网 | 日韩在线视 | 欧美午夜精品久久久久久孕妇 | 国产区精品| 69中文字幕 | 97在线免费视频观看 | 免费福利片2019潦草影视午夜 | 久久黄视频 | 中文字幕在线国产精品 | 九草视频在线 | 欧美一级片免费在线观看 | av在线网站观看 | 久久99久久99精品免视看婷婷 | 一本—道久久a久久精品蜜桃 | 免费黄色特级片 | 色 免费观看 | 色综合久久久久综合 | 91av视频导航 | 国产精品99久久免费观看 | 国产色 在线 | 久久艹在线观看 | 网站在线观看你们懂的 | 国产一卡二卡四卡国 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产在线精品一区二区三区 | 99精品视频一区二区 | 超碰97在线看 | 97热久久免费频精品99 | 中文字幕之中文字幕 | 欧美精品网站 | 国内视频1区 | 中文字幕在线观看国产 | 国产第一福利 | 欧美精品一区二区三区一线天视频 | 777奇米四色 | 成人免费xxxxxx视频 | 亚洲精品久久久蜜桃 | 就色干综合 | 国产毛片久久久 | 国产色拍拍拍拍在线精品 | 麻豆传媒视频在线 | 国产高清小视频 | 国产91在线 | 美洲 | 在线黄色毛片 | 综合色婷婷 | 免费视频久久久 | 日韩在线高清免费视频 | 97色综合| 久久99久久99精品免观看软件 | 91视频黄色 | a黄在线观看 | 天天操天天射天天操 | 亚洲爱视频 | 综合色久 | 日韩女同av | 人人揉人人揉人人揉人人揉97 | 亚洲五月综合 | 久草网站在线 | 超碰在线观看97 | 91人人澡| 极品嫩模被强到高潮呻吟91 | 久久视频这里有精品 | 国产99久久久久久免费看 | 中文字幕一区二区三区乱码在线 | 中文字幕在线免费观看 | 久久视频精品在线观看 | 久久综合久久鬼 | 国产在线播放不卡 | 中文字幕在线高清 | 国产在线一卡 | 麻豆国产精品视频 | 一级片视频免费观看 | 亚洲激情一区二区三区 | 欧美亚洲三级 | 国产一二区视频 | 久色伊人| 亚洲精品视频免费观看 | 国产麻豆剧传媒免费观看 | 亚洲天堂网站 | 中文字幕精品三级久久久 | 欧美精品久久天天躁 | 麻豆91精品视频 | 国产裸体视频网站 | 久久综合天天 | 夜夜澡人模人人添人人看 | 日韩三级一区 | 91黄色小视频 | 精品美女在线视频 | 免费av 在线 | 27xxoo无遮挡动态视频 | 国产露脸91国语对白 | 国产最顶级的黄色片在线免费观看 | 久久开心激情 | 日韩在线视频国产 | 奇米影视在线99精品 | 丁香激情综合国产 | 天天干天天操天天干 | 久久免费视频国产 | 视频一区二区免费 | 91视频国产免费 | 91porny九色在线播放 | 国产网站av | 在线视频精品 | 99久久精品国产亚洲 | 日韩三级精品 | 香蕉在线视频观看 | 日韩一区精品 | 狠狠的操狠狠的干 | 国产精品视频最多的网站 | 亚洲涩涩涩涩涩涩 | 99久久婷婷国产一区二区三区 | 亚洲精品视频免费看 | 国产系列 在线观看 | av高清在线观看 | 在线国产视频观看 | 黄色片视频在线观看 | 久久国产一区 | 免费在线成人av | 性色av一区二区三区在线观看 | 国产高清综合 | 六月色丁香 | 久久久电影网站 | 97日日碰人人模人人澡分享吧 | 91福利区一区二区三区 | 黄色网www | 99精品国产福利在线观看免费 | 手机看片国产日韩 | 国产人成一区二区三区影院 | 中文字幕在线观看不卡 | 99免在线观看免费视频高清 | 久草视频免费在线观看 | 中文国产字幕 | 久久不见久久见免费影院 | 狠狠色狠狠色合久久伊人 | 亚洲妇女av | 色网站中文字幕 | 亚洲一区免费在线 | 亚洲免费精彩视频 | 中文字幕 二区 | 夜夜骑日日操 | 久久a级片 | 亚洲传媒在线 | 中文字幕第一 | 久久无码av一区二区三区电影网 | 最新精品视频在线 | 国产1区在线观看 | 日韩免费一级a毛片在线播放一级 | 在线影院 国内精品 | 日韩在线电影观看 | 九九综合九九 | 91网址在线观看 | 又黄又爽又色无遮挡免费 | 91精品国产综合久久久久久久 | 天天爽综合网 | 97国产超碰 | 国产精品 美女 | 天天干天天干天天色 | 日本中文字幕在线一区 | 久久国内视频 | 精品国产一区二区三区久久久久久 | 色婷婷狠狠五月综合天色拍 | 亚洲一区精品人人爽人人躁 | 亚洲成av人影院 | 成人免费视频观看 | www久久九| 亚洲天堂网在线观看视频 | 久久精品电影网 | 国外av在线 | 亚洲aⅴ久久精品 | 在线观看国产www | 中文字幕日韩电影 | 久久久久久高潮国产精品视 | 国产在线精品一区二区 | 免费麻豆网站 | 欧美国产日韩在线视频 | 丁香六月婷婷激情 | 国内精自线一二区永久 | 精品国产乱码久久久久久1区2匹 | 色网站国产精品 | 亚洲国产中文字幕在线 | 激情五月六月婷婷 | 四虎影视av | 国产中文欧美日韩在线 | 99精品视频免费观看 | 手机成人在线 | 91成熟丰满女人少妇 | 欧美日韩一区二区三区在线观看视频 | 色综合亚洲精品激情狠狠 | 国产一区免费看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产高清视频在线播放一区 | 免费福利片2019潦草影视午夜 | 伊人久久电影网 | 国产午夜精品一区二区三区嫩草 | 精品 一区 在线 | 日本99干网| 婷婷久久网| 成人午夜网| 米奇狠狠狠888 | 国产黄色成人av | 久久久久国产精品一区 | 国产精品网址在线观看 | 99综合电影在线视频 | 国产精品a久久久久 | 亚洲视频免费在线观看 | 久久免费电影 | 狠狠干网址 | 91视频传媒| 香蕉影院在线播放 | 欧美经典久久 | 日韩在线观看视频一区二区三区 | 久久午夜精品影院一区 | 久久亚洲综合国产精品99麻豆的功能介绍 | 香蕉视频导航 | 亚洲国内精品在线 | 黄色一级大片在线免费看产 | 中文字幕av一区二区三区四区 | 91av视频在线播放 | 福利网在线 | 玖玖视频免费在线 | 一级黄色片在线播放 | 日韩在线短视频 | 成人av资源 | 欧美最新大片在线看 | 国内精品一区二区 | 亚洲成人av片在线观看 | 亚洲日本中文字幕在线观看 | 高清中文字幕 | 色婷婷丁香 | 丁香激情综合 | 啪一啪在线 | 天天干天天操天天做 | 中文字幕在线播出 | 奇米网网址| 成人免费中文字幕 | 久久亚洲视频 | 亚洲综合色婷婷 | 久久国产视频网站 | 免费瑟瑟网站 | 91理论片午午伦夜理片久久 | 亚洲国产wwwccc36天堂 | 久产久精国产品 | av色图天堂网 | 久久久久久国产精品999 | 国产精品视频久久久 | 免费久久视频 | 亚洲欧美精品一区二区 | 在线观看一区视频 | 国产一级二级视频 | av大全免费在线观看 | 国产一区在线免费观看视频 | 手机看片 | 天天色 天天 | 精品日韩在线 | 狠狠色狠狠色合久久伊人 | 国产视频色 | 国产一区二区在线观看免费 | 99高清视频有精品视频 | 欧美日韩国产在线一区 | 久久a v电影 | 91在线观看高清 | 国产精品久久一卡二卡 | 亚洲人精品午夜 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 国产精品一二三 | 成人三级网站在线观看 | 中文字幕丰满人伦在线 | 99热9 | 一区二区三区免费在线观看视频 | 欧美一级大片在线观看 | 在线观看亚洲成人 | 欧美日韩视频一区二区三区 | 亚洲我射av| 成人免费看片网址 | 在线精品亚洲一区二区 | 97精品国产97久久久久久粉红 | 亚洲一级影院 | 色欧美成人精品a∨在线观看 | 成人久久免费视频 | 国产成人精品999 | 欧美色综合久久 | 国产 色| 81国产精品久久久久久久久久 | 久草在线视频免赞 | 亚洲成人资源在线观看 | 亚洲2019精品 | 婷婷中文字幕在线观看 | 国产亚洲精品精品精品 | 狠狠操狠狠 | 97超级碰碰| 狠狠躁天天躁 | 99精品免费在线观看 | 色婷婷国产在线 | 99精品视频免费在线观看 | 天天干中文字幕 | 久久在线免费 | 久久观看免费视频 | 国产破处视频在线播放 | 五月婷婷综合在线视频 | 在线午夜电影神马影院 | 成人av片免费看 | 偷拍福利视频一区二区三区 | 国产a精品 | 九九九在线观看视频 | 99热在线国产精品 | 久久一二三四 | 色天天中文 | 国产一区免费看 | 黄色视屏av | 国产 色| 国产成人高清在线 | 国产精品久久久久久久免费大片 | 久久a级片 | 一本一本久久aa综合精品 | 国内精品久久天天躁人人爽 | 最近中文字幕大全中文字幕免费 | a在线视频v视频 | 久久久观看 | 91在线视频播放 | 丁香六月婷婷开心 | 久久九九精品久久 | 99精品在线观看 | 色综合久久久久网 | 国产一级一片免费播放放 | 美女视频永久黄网站免费观看国产 | 五月婷婷丁香网 | 亚洲不卡av一区二区三区 | 亚洲三级影院 | 啪啪凸凸 | 青草视频在线播放 | 狠狠干婷婷色 | 五月天综合激情网 | 97在线公开视频 | 精品国产1区 | 免费视频二区 | 日韩有码在线观看视频 | 91激情视频在线 | 91成人精品一区在线播放 | 欧美极度另类 | 一级一片免费看 | 日韩av片无码一区二区不卡电影 | 日韩免费福利 | 麻豆精品视频在线 | 国产成人一区二区三区影院在线 | 天天干天天操天天爱 | 国产麻豆果冻传媒在线观看 | 国产精品嫩草影院99网站 | 4p变态网欧美系列 | 97视频免费在线看 | 在线三级播放 | 亚洲天天干 | 91人人澡 | 成人国产精品久久久久久亚洲 | 精品国产1区 | 婷婷在线精品视频 | 亚洲少妇xxxx | 91热爆视频 | 色综合夜色一区 | 成人在线播放视频 | av超碰在线 | 极品久久久久久久 | 日韩丝袜在线 | 国产黄色片久久 | 国产女做a爱免费视频 | 一区二区中文字幕在线 | 天堂av在线网址 | 亚洲黄色免费 | 国产精品毛片一区二区三区 | 91久久久久久久一区二区 | 在线影院 国内精品 | 国产一区电影在线观看 | 成人av在线网址 | 中文字幕在线免费播放 | 成人黄色大片在线免费观看 | 欧美成人久久 | 久久不见久久见免费影院 | 日本动漫做毛片一区二区 | 在线www色| 97在线观看视频免费 | 91av看片 | 人人插人人插 | 中文字幕视频网站 | 91精品在线免费观看 | 国产在线观 | 96av视频| 就操操久久 | 91夫妻自拍 | 500部大龄熟乱视频使用方法 | 国产精品自在欧美一区 | 少妇性aaaaaaaaa视频 | 国模精品一区二区三区 | 色综合色综合久久综合频道88 | 久久成人人人人精品欧 | 亚洲精品一区二区在线观看 | 国产一区视频在线 | 成人在线观看网址 | 欧美日韩一区二区三区不卡 | 9999精品免费视频 | 亚洲电影第一页av | 国产精品久久久久影院 | 日韩免费一区二区 | 国产一区二区三区免费观看视频 | 国产精品亚洲视频 | 一区二区视频免费在线观看 | 3d黄动漫免费看 | 在线看污网站 | 久久免费大片 | 日韩高清在线观看 | 免费久久99精品国产 | 亚洲激情小视频 | 天天爽天天搞 | 在线激情网 | 久久久久女人精品毛片 | av在线com| 夜夜高潮夜夜爽国产伦精品 | 99热精品在线| 黄色免费电影网站 | 免费看的毛片 | 久久人人爽人人人人片 | 一二三区视频在线 | 国产精品麻豆三级一区视频 | 在线国产福利 | 日韩在线观看视频在线 | 久久一区国产 | 成人免费观看视频大全 | 九九热免费观看 | 欧美日韩中字 | 久福利| 欧美日韩国产精品爽爽 | 国产一区二区网址 | 亚洲国产97在线精品一区 | 91麻豆免费看 | 国内久久| 亚洲专区视频在线观看 | 亚洲成人免费观看 | 日韩a在线 | 欧美地下肉体性派对 | 日韩av黄 | 69视频网站| 国产男女无遮挡猛进猛出在线观看 | 999国产在线 | 国产涩图 | 久久久久久久久久久免费av | 在线看91| 正在播放国产91 | 国产精品免费不卡 | 婷婷久久婷婷 | 99免费精品 | 香蕉影院在线观看 | 黄色的视频 | 激情视频在线高清看 | 99 国产精品| av在线之家电影网站 | 国产精品九九九 | 免费av一级电影 | 97精品国产aⅴ | 国产精品第一页在线观看 | 国产精品小视频网站 | 国产精品成人aaaaa网站 | 国产一区二区久久久久 | 成人免费观看视频网站 | 精品一区二区三区在线播放 | av888.com| 又色又爽又黄 | 美女久久久 | 亚洲国产中文在线 | 婷婷色网视频在线播放 | 国产精品美女久久久 | 色综合久久久久久中文网 | 999国内精品永久免费视频 | 久久一视频| 美女黄频在线观看 | 国产在线视频在线观看 | 色五月激情五月 | 国产无遮挡猛进猛出免费软件 | 免费看片网址 | 亚洲国产精品一区二区尤物区 | 国产精品久久久久av福利动漫 | 精品亚洲一区二区三区 | 友田真希x88av | 亚洲精品高清视频在线观看 | 国产精品精 | 日韩av影片在线观看 | 玖玖在线观看视频 | 超碰av免费 | 一区二区三区国产欧美 | 偷拍福利视频一区二区三区 | 国产精品福利av | 久草观看视频 | 久久福利小视频 | 免费福利片2019潦草影视午夜 | 99国产在线观看 | 99久久精品免费看国产 | 国产精品久久久久久吹潮天美传媒 | 免费a现在观看 | 亚洲精品在线一区二区三区 | 丁香网婷婷 | 成人性生交大片免费观看网站 | 国产精品男女视频 | 日韩精品亚洲专区在线观看 | 综合色狠狠 | 超碰在线个人 | 免费看片日韩 | 五月激情丁香图片 | 亚洲精品高清一区二区三区四区 | 天天拍天天操 | 91| 欧美成人在线网站 | 三级av小说 | 欧美性生活小视频 | 美女网站在线 | 天天撸夜夜操 | 国产手机在线观看 | 欧美福利视频 | 亚洲综合在线五月天 | 91黄色视屏| 日本黄色大片免费看 | 最新国产精品视频 | 国产日韩欧美在线一区 | 91视频在线观看下载 | 国产一区欧美日韩 | 人人草人人草 | 99久久99视频| 波多野结衣在线中文字幕 | 探花视频免费观看 | 日本女人的性生活视频 | 国产精品久久久久久久久久久免费 | 在线亚洲欧美视频 | 极品久久久 | 午夜影视一区 | 国产97视频在线 | 免费在线播放av电影 | 久久综合九色九九 | 色综合天天色综合 | 五月香视频在线观看 | 成年人免费观看国产 | 国产精品欧美激情在线观看 | 成人午夜精品福利免费 | www.狠狠操.com | 国产成人一区二区三区 | 国产成人在线观看免费 | 在线观看国产v片 | 蜜桃av人人夜夜澡人人爽 | 日韩三级免费观看 | 欧美一区在线观看视频 | 国产三级视频在线 | 久草在线国产 | 亚洲国产中文字幕在线观看 | 黄色影院在线免费观看 | 久久久久久久久免费 | 激情五月看片 | 四虎影视成人永久免费观看视频 | 在线国产一区二区 | 好看av在线 | 欧美黄色成人 | 韩国av三级 | 国产最新视频在线观看 | 丝袜美女在线观看 | 日本字幕网 | 狠狠地日| 免费在线观看一区二区三区 | 久久九九国产视频 | 免费av电影网站 | 日韩电影在线观看一区二区三区 | 福利视频 | 中文字幕免费在线 | 九九免费观看视频 | 国产一区免费 | 91探花在线 | 日日夜夜操操操操 | 日日色综合 | 美女视频黄免费的久久 | 天天干国产 | 国产人成看黄久久久久久久久 | 精品亚洲欧美一区 | 色婷婷 亚洲 | 久久久午夜电影 | 亚洲精品乱码久久久久久按摩 | 日韩在线观看网站 | a级一a一级在线观看 | 国产区高清在线 | 免费在线观看午夜视频 | 人人超在线公开视频 | 中文字幕在线观看视频一区 | 色资源网免费观看视频 | 全久久久久久久久久久电影 | 手机看片福利 | 天天艹 | 麻豆视频免费入口 | 国产亚洲精品无 | 久久国产精品99久久久久久老狼 | 日本精品视频网站 | 成年人在线免费看 | 丁香六月婷| 久久精品一区二区三区中文字幕 | 天天摸日日操 | 亚洲日本va在线观看 | 婷婷色视频 | 午夜精品一区二区三区免费 | 国产亚洲精品成人 | 久久超碰97 | 亚洲综合视频在线观看 | 99国产在线视频 | 热久精品| 五月婷婷一区二区三区 | 免费福利片2019潦草影视午夜 | 色吊丝在线永久观看最新版本 | 国产在线观看中文字幕 | 精品国产成人av在线免 | 五月天激情综合 | 成人精品福利 | 黄色小视频在线观看免费 | 99在线免费观看视频 | 99久高清在线观看视频99精品热在线观看视频 | 国产又粗又猛又色又黄视频 | 97在线公开视频 | 久草在线视频在线观看 | 中文字幕九九 | 国产亚洲成人精品 | 国产精品 日韩 欧美 | 九九影视理伦片 | 欧美日韩超碰 | 综合网av| 天天人人 | 欧美日韩一区二区在线观看 | 国产精品久久久久久久免费 | 香蕉色综合| 五月天婷亚洲天综合网精品偷 | 日日夜夜精品 | 日韩高清免费无专码区 | 亚洲另类人人澡 | 天天操天天操天天操天天操 | 天天爽天天碰狠狠添 | 97国产精品 | 在线视频观看成人 | 欧美久久久久久久久中文字幕 | 日韩电影在线视频 | 伊人久操| 成人黄在线 | 国产精品久久久久一区二区三区共 | 18久久久久久 | www五月婷婷| 91中文字幕在线 | 日p视频 | 在线亚洲欧美日韩 | 成人在线免费观看视视频 | 精品国产伦一区二区三区免费 | 国产伦理精品一区二区 | 91av观看 | 精品国产成人av | 成人免费亚洲 | 国产亚洲精品中文字幕 | 麻豆久久一区 | 精品91| 免费视频三区 | 免费av在线网 | 97超视频免费观看 | 久久国产精品免费视频 | 免费在线观看av | 美女在线免费观看视频 | 日韩免费高清在线观看 | 中文字幕二区三区 | av电影中文字幕在线观看 | 亚洲精品综合一区二区 | 国产高清日韩欧美 | 成人91免费视频 | 999国内精品永久免费视频 | 看v片| 99久久婷婷国产精品综合 | 国产精品久久久久久久免费观看 | 精品麻豆入口免费 | 成人亚洲精品国产www | 久久久久久黄色 | 欧美精彩视频 | 精品亚洲午夜久久久久91 | 亚洲va欧洲va国产va不卡 | 夜添久久精品亚洲国产精品 | 日本激情视频中文字幕 | 亚洲天堂网站视频 | 国产视频2 | 日韩精品在线视频 | 欧美性成人 | 国内久久久久久 | 99久热在线精品视频 | 久久久国产网站 | 午夜精品一区二区三区免费视频 | 日韩视频免费播放 | 久久99国产精品久久99 | 日韩精品极品视频 | 欧美在线free | 国产精品视频不卡 | 97视频中文字幕 | 337p日本欧洲亚洲大胆裸体艺术 | 狠狠操狠狠干天天操 | 人人爱人人添 | 久草国产在线观看 | 欧美日韩电影在线播放 | 免费国产在线观看 | 日批视频 | 免费a一级 | 激情丁香月 | 在线观看91久久久久久 | 青青视频一区 | 一级免费黄色 | 国产精品一区二区三区免费看 | 中文字幕亚洲情99在线 | 黄色毛片一级 | 久久婷婷五月综合色丁香 | 亚洲综合精品视频 | 精品国产亚洲日本 | 久久免费在线视频 | 国产精品免费观看在线 | 成人久久18免费网站 | 免费av网站在线看 | 欧美另类性 | 天天综合成人 | 中文区中文字幕免费看 | 五月激情久久 | 伊人永久 |