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

20 個 Lambda+Stream 代碼示例,簡化開發

開發
今天這篇文章,我整理了 20 個 Lambda+Stream 實戰案例,從基礎到進階,讓代碼量減少 50%,開發效率直接翻倍!

還在寫一堆循環和判斷來處理集合?Lambda 和 Stream 一行代碼搞定的事,不要再寫十幾行了!今天這篇文章,我整理了 20 個 Lambda+Stream 實戰案例,從基礎到進階,讓代碼量減少 50%,開發效率直接翻倍!

一、Lambda 表達式:告別冗余代碼

1. 替代匿名內部類,讓代碼更簡潔

以前寫線程 Runnable 要嵌套匿名內部類,代碼又長又亂:

// 傳統方式

new Thread(new Runnable() {


   @Override

   public void run() {


       System.out.println("線程執行了");


   }


}).start();


// Lambda 方式(一行搞定)

new Thread(() -> System.out.println("線程執行了")).start();

核心邏輯:Lambda 表達式用 ()->{} 代替了匿名內部類,當方法體只有一行時,大括號和 return 都可以省略。

2. 集合排序:告別復雜的 Comparator

對列表排序時,Lambda 能把比較邏輯壓縮成一行:

List<String> names = Arrays.asList("張三", "李四", "王五");


// 傳統排序(按長度)

Collections.sort(names, new Comparator<String>() {


   @Override

   public int compare(String o1, String o2) {


       return o1.length() - o2.length();


   }


});


// Lambda 排序

names.sort((a, b) -> a.length() - b.length());


// 更簡潔:用方法引用

names.sort(Comparator.comparingInt(String::length));

3. 自定義函數式接口:靈活傳遞邏輯

定義一個簡單的函數式接口(只有一個抽象方法),用 Lambda 傳遞具體實現:

// 自定義函數式接口

@FunctionalInterface

interface MathOperation {


   int operate(int a, int b);


}


// 使用 Lambda 實現加法和乘法

MathOperation addition = (a, b) -> a + b;


MathOperation multiplication = (a, b) -> a * b;


System.out.println(addition.operate(3, 5)); // 輸出 8

System.out.println(multiplication.operate(3, 5)); // 輸出 15

二、Stream 流:讓集合操作飛起來

4. 遍歷集合:替代 for 循環

用 forEach 遍歷集合,代碼更緊湊,還能配合 Lambda 寫邏輯:

List<String> fruits = Arrays.asList("蘋果", "香蕉", "橙子");


// 傳統 for 循環

for (String fruit : fruits) {


   System.out.println(fruit);


}


// Stream 遍歷

fruits.stream().forEach(fruit -> System.out.println(fruit));


// 方法引用更簡潔

fruits.forEach(System.out::println);

5. 篩選元素:按條件過濾集合

從集合中篩選出符合條件的元素,比如找出所有偶數:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);


// 篩選出偶數

List<Integer> evenNumbers = numbers.stream()


   .filter(n -> n % 2 == 0) // 過濾條件

   .collect(Collectors.toList()); // 收集結果

System.out.println(evenNumbers); // 輸出 [2, 4, 6]

6. 映射轉換:將一種類型轉為另一種

把集合中的元素轉換成新的類型,比如提取用戶列表中的姓名:

List<User> users = Arrays.asList(


   new User("張三", 20),


   new User("李四", 25)


);


// 提取所有用戶名

List<String> usernames = users.stream()


   .map(User::getName) // 調用 User 的 getName 方法

   .collect(Collectors.toList());


System.out.println(usernames); // 輸出 [張三, 李四]

三、Stream 進階操作:復雜邏輯簡單化

7. 排序:按字段對集合排序

對用戶列表按年齡排序,無需手動實現 Comparator:

List<User> users = Arrays.asList(


   new User("張三", 25),


   new User("李四", 20),


   new User("王五", 30)


);


// 按年齡升序排序

List<User> sortedByAge = users.stream()


   .sorted(Comparator.comparingInt(User::getAge))


   .collect(Collectors.toList());


// 按年齡降序排序(加 reversed())

List<User> sortedByAgeDesc = users.stream()


   .sorted(Comparator.comparingInt(User::getAge).reversed())


   .collect(Collectors.toList());

8. 去重:快速去除集合中的重復元素

用 distinct() 方法一鍵去重,比手動遍歷判斷高效 10 倍:

List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 3, 3);


List<Integer> distinctNumbers = numbers.stream()


   .distinct()


   .collect(Collectors.toList());


System.out.println(distinctNumbers); // 輸出 [1, 2, 3]

9. 限制和跳過:取前 N 個或跳過前 N 個元素

分頁查詢時特別有用,比如取列表中的前 2 個元素:

List<User> users = Arrays.asList(


   new User("張三", 20),


   new User("李四", 25),


   new User("王五", 30)


);


// 取前 2 個元素

List<User> top2 = users.stream()


   .limit(2)


   .collect(Collectors.toList());


// 跳過前 1 個,取剩下的

List<User> skip1 = users.stream()


   .skip(1)


   .collect(Collectors.toList());

四、聚合操作:統計分析一鍵搞定

10. 求和:計算集合中數值的總和

計算訂單金額總和,不用再循環累加:

List<Order> orders = Arrays.asList(


   new Order(100.0),


   new Order(200.0),


   new Order(300.0)


);


// 計算總金額

double total = orders.stream()


   .mapToDouble(Order::getAmount) // 轉為 DoubleStream

   .sum(); // 求和

System.out.println(total); // 輸出 600.0

11. 求最大值 / 最小值:快速找到集合中的極值

找出最大年齡的用戶:

List<User> users = Arrays.asList(


   new User("張三", 20),


   new User("李四", 25),


   new User("王五", 30)


);


// 求最大年齡

OptionalInt maxAge = users.stream()


   .mapToInt(User::getAge)


   .max();


// 求最小年齡

OptionalInt minAge = users.stream()


   .mapToInt(User::getAge)


   .min();


// 輸出結果(用 orElse 避免空指針)

System.out.println(maxAge.orElse(0)); // 輸出 30

12. 計數:統計符合條件的元素數量

統計年齡大于 25 的用戶數量:

List<User> users = Arrays.asList(


   new User("張三", 20),


   new User("李四", 25),


   new User("王五", 30)


);


long count = users.stream()


   .filter(user -> user.getAge() > 25)


   .count();


System.out.println(count); // 輸出 1

五、集合轉換:List、Set、Map 互轉

13. List 轉 Set:自動去重

把 List 轉換成 Set,順便去重:

List<String> list = Arrays.asList("a", "b", "a", "c");


Set<String> set = list.stream()


   .collect(Collectors.toSet());


System.out.println(set); // 輸出 [a, b, c]

14. List 轉 Map:用字段作為 key 或 value

將用戶列表轉換成 Map,key 為用戶名,value 為用戶對象:

List<User> users = Arrays.asList(


   new User("張三", 20),


   new User("李四", 25)


);


// 轉為 Map:key=姓名,value=用戶對象

Map<String, User> userMap = users.stream()


   .collect(Collectors.toMap(


       User::getName, // key 生成器

       Function.identity() // value 生成器(用自身)

   ));

坑點提醒:如果 key 有重復,會拋出 IllegalStateException,可以用第三個參數處理沖突:

// 遇到重復 key 時,保留第一個

Map<String, User> userMap = users.stream()


   .collect(Collectors.toMap(


       User::getName,


       Function.identity(),


       (existing, replacement) -> existing // 沖突時取 existing

   ));

六、復雜場景實戰:鏈式操作解決難題

15. 多條件篩選 + 排序 + 提取字段

需求:從訂單列表中篩選出金額大于 100、狀態為已支付的訂單,按金額降序排序,最后提取訂單號:

List<Order> orders = Arrays.asList(


   new Order("001", 150.0, "已支付"),


   new Order("002", 80.0, "已支付"),


   new Order("003", 200.0, "未支付"),


   new Order("004", 300.0, "已支付")


);


List<String> orderNos = orders.stream()


   // 篩選:金額>100 且 狀態為已支付

   .filter(o -> o.getAmount() > 100 && "已支付".equals(o.getStatus()))


   // 按金額降序排序

   .sorted(Comparator.comparingDouble(Order::getAmount).reversed())


   // 提取訂單號

   .map(Order::getOrderNo)


   // 收集結果

   .collect(Collectors.toList());


System.out.println(orderNos); // 輸出 [004, 001]

16. 批量處理:對集合中元素統一操作

給所有用戶的年齡加 1:

List<User> users = Arrays.asList(


   new User("張三", 20),


   new User("李四", 25)


);


// 批量修改年齡(注意:需 User 類有 setAge 方法)

users.stream()


   .forEach(user -> user.setAge(user.getAge() + 1));

17. 分組:按字段對集合分組

按用戶所在城市分組:

List<User> users = Arrays.asList(


   new User("張三", "北京"),


   new User("李四", "上海"),


   new User("王五", "北京")


);


// 按城市分組:key=城市,value=該城市的用戶列表

Map<String, List<User>> groupByCity = users.stream()


   .collect(Collectors.groupingBy(User::getCity));


// 輸出分組結果

groupByCity.forEach((city, userList) -> {


   System.out.println(city + ":" + userList.stream()


       .map(User::getName)


       .collect(Collectors.toList()));


});


// 輸出:

// 北京:[張三, 王五]

// 上海:[李四]

七、Lambda 與 Optional:避免空指針異常

18. Optional 處理可能為 null 的值

以前判斷對象是否為 null 要寫多層嵌套,用 Optional 一行搞定:

// 傳統方式(多層判空)

String username = null;


if (user != null) {


   Address address = user.getAddress();


   if (address != null) {


       username = address.getCity();


   }


}


// Optional 方式

String city = Optional.ofNullable(user)


   .map(User::getAddress) // 調用 getAddress(),若為 null 則停止

   .map(Address::getCity)


   .orElse("未知城市"); // 若最終為 null,返回默認值

19. 集合中查找第一個符合條件的元素

用 findFirst() 快速找到第一個滿足條件的元素,避免遍歷整個集合:

List<User> users = Arrays.asList(


   new User("張三", 20),


   new User("李四", 25),


   new User("王五", 30)


);


// 查找第一個年齡大于 22 的用戶

Optional<User> user = users.stream()


   .filter(u -> u.getAge() > 22)


   .findFirst();


// 存在則輸出姓名

user.ifPresent(u -> System.out.println(u.getName())); // 輸出 李四

20. 并行流:利用多核 CPU 加速處理

數據量超大時,用 parallelStream() 開啟并行處理,自動利用多個線程加速:

// 處理 100 萬條數據(并行流)

List<Long> numbers = new ArrayList<>();


for (long i = 0; i < 1000000; i++) {


   numbers.add(i);


}


// 并行計算總和(比普通 stream 快幾倍)

long sum = numbers.parallelStream()


   .filter(n -> n % 2 == 0) // 篩選偶數

   .mapToLong(n -> n)


   .sum();

注意:并行流適合無狀態、線程安全的操作,否則可能出現線程安全問題。

為什么 Lambda+Stream 能讓開發效率翻倍?

傳統集合操作需要寫大量循環、判斷和臨時變量,代碼冗長且可讀性差。而 Lambda+Stream 用鏈式調用和函數式編程的思想,把復雜邏輯壓縮成幾行代碼,帶來三大好處:

  • 代碼量減少 50%:一行流操作頂十行循環
  • 可讀性提升:鏈式操作像自然語言一樣直觀
  • 并行處理簡單:一行 parallelStream() 就能利用多核 CPU

學會這些用法,原來要寫循環的,一行代碼就解決問題了,效率就是這么提升的!

責任編輯:趙寧寧 來源: 編程江湖
相關推薦

2020-11-10 08:54:55

Lombok

2010-06-02 10:00:25

MySQL工具

2023-08-11 18:16:08

DevOps開發

2013-06-04 16:59:42

iOS開發iOS工具移動開發

2010-05-27 12:30:52

MySQL工具

2010-01-26 09:10:38

Java EE 6注解Profile

2009-06-11 17:54:00

Visual StudDataSet

2023-04-02 14:09:51

2010-05-24 09:47:32

AjaxAjax框架

2023-08-09 08:21:26

2010-07-06 10:34:33

RationalJazz需求管理

2012-04-23 10:05:37

PHPWEB

2015-08-04 09:16:20

JavaLambda表達式

2011-01-04 09:34:23

LambdaC#

2024-12-05 08:13:18

2024-04-16 08:48:14

WPF開發MVVM庫Prism

2024-01-18 15:34:58

Windows操作系統

2018-10-08 08:42:06

編程語言DjangoPython

2013-06-05 10:16:53

2016-11-15 14:07:28

Apache SparLambdaHadoop
點贊
收藏

51CTO技術棧公眾號

亚洲系列在线观看| 日韩精品www| 久久久成人精品视频| 女人帮男人橹视频播放| 一级片视频网站| 久久99国产精品视频| 风流少妇一区二区| 久久久精品视频在线观看| 中文字幕在线观看视频www| h网站视频在线观看| 亚州精品视频| 精品人伦一区二区三区蜜桃网站| 91精品久久香蕉国产线看观看| 日本一道本视频| 欧美日韩视频免费观看| 91色视频在线| 日本精品视频网站| 亚洲成人网在线播放| 性爽视频在线| 久久久久久**毛片大全| 青草青草久热精品视频在线网站 | 亚洲精品国产美女| 欧美一区二区激情| 中文字幕在线视频区| 日韩经典一区二区| 国产一区二区三区精品久久久| 国内外成人免费激情视频| 手机看片国产1024| 亚洲精品美女| 日韩精品中文字幕在线播放| 一女被多男玩喷潮视频| 手机福利在线| 日韩影院在线观看| 午夜精品一区二区三区在线视频| 在线免费看黄色片| 3344国产永久在线观看视频| aaa欧美日韩| 国产精欧美一区二区三区| 精品一区二区三区蜜桃在线| 国产三级一区| 亚洲免费视频中文字幕| 国产成人精品免费视频大全最热| 国产主播在线播放| 亚洲人亚洲人色久| 欧美日韩视频不卡| 免费极品av一视觉盛宴| 色一情一乱一乱一区91av| 国产一区不卡精品| 97婷婷涩涩精品一区| 欧美成人精品欧美一| 开心激情综合| 欧美日韩中字一区| 欧美日韩怡红院| av在线官网| 97久久人人超碰| 国产欧美精品日韩精品| 久久久一二三区| 九一亚洲精品| 亚洲视频在线免费观看| 久久发布国产伦子伦精品| 四虎影视精品永久在线观看| 亚洲国产成人porn| 亚洲精品久久久久久一区二区| av中文字幕在线免费观看| 99国产精品| 久久久久北条麻妃免费看| 992在线观看| 麻豆国产欧美一区二区三区r| 日韩欧美国产wwwww| 国产成人精品无码播放| 97影院秋霞午夜在线观看| 久久久噜噜噜久噜久久综合| 欧美激情视频一区二区三区| 99re只有精品| 日本在线播放一区二区三区| 高清欧美一区二区三区| 可以免费看av的网址| 啪啪激情综合网| 91精品国产综合久久久久久久 | 欧美激情1区2区| 亚洲精品日韩欧美| 91成人在线免费视频| 2021年精品国产福利在线| 欧美中文字幕一区| 欧美日韩精品在线一区二区| av免费网站在线| 一区二区在线观看不卡| 日韩欧美三级一区二区| 欧美熟妇交换久久久久久分类| 人人超碰91尤物精品国产| 国产欧美精品va在线观看| www日本高清视频| 精东粉嫩av免费一区二区三区 | av在线一区不卡| 午夜国产不卡在线观看视频| 国产内射老熟女aaaa| 亚洲精品承认| 国产亚洲1区2区3区| 黄色国产精品一区二区三区| 精品国产无码一区二区| 99这里都是精品| 婷婷四房综合激情五月| 国产资源在线看| 99国产精品99久久久久久| 日韩精彩视频| 九色91在线| 亚洲免费观看视频| 国产91在线视频观看| 成人国产电影在线观看| 五月天久久比比资源色| 久久这里只有精品23| 美女日批视频在线观看| 91久久精品一区二区三区| 国产成人a亚洲精v品无码| 四虎国产精品成人免费影视| 亚洲国产精品高清久久久| 男人操女人下面视频| 国产精品3区| 欧美精品色一区二区三区| 欧美 日韩 国产 激情| 国产777精品精品热热热一区二区| 色综合久久综合网97色综合| 亚洲精品无码久久久久久| 国产精品一区三区在线观看| 国产亚洲精品久久| 久热精品在线观看| 黄一区二区三区| 日本精品一区二区三区视频| 福利在线播放| 亚洲欧美在线高清| 久久久99精品视频| 国产成人精品一区二区三区免费| 欧美精品在线观看一区二区| 亚洲综合色一区| 99国产精品视频免费观看一公开 | 色七七在线观看| 亚洲婷婷丁香| 2020欧美日韩在线视频| 黄色一级片免费在线观看| 久久一日本道色综合久久| 国产成人在线亚洲欧美| 午夜在线视频免费| 欧美激情中文不卡| 黑人巨大国产9丨视频| 久久青青色综合| 欧美一区二区在线免费播放| 欧美一区二区三区观看| 日本视频在线一区| 日韩一区二区三区高清| 成人免费福利| 亚洲天堂av高清| 男人的天堂av网站| 国产一区二区网址| 福利网在线观看| 波多野结衣精品| 欧美日韩五月天| 天天摸日日摸狠狠添| 日本美女一区二区| 亚洲精品一卡二卡三卡四卡| 国内自拍亚洲| 久久久成人精品视频| 91污在线观看| 国产精品国产精品| 在线观看免费高清视频| 国产欧美一区二区精品性| 国产精品劲爆视频| 一二三不卡视频| 色无极亚洲影院| 欧美激情国内偷拍| 国产乡下妇女三片| 高清成人免费视频| 男女视频网站在线观看| 日本一区福利在线| 国产成人综合亚洲| 欧美日韩xx| 一本色道a无线码一区v| 天天躁日日躁aaaxxⅹ| 久久一日本道色综合久久| 亚洲女人毛片| 欧美高清hd| 正在播放欧美视频| 免费在线不卡视频| 国产乱国产乱300精品| 免费精品视频一区| 国产深夜视频在线观看| 日韩精品在线免费| 一级黄色a毛片| 亚洲第一在线综合网站| 久久丫精品忘忧草西安产品| 精品无人区卡一卡二卡三乱码免费卡| 国产精品va在线观看无码| 久久亚洲资源中文字| 欧美成人精品h版在线观看| 中文字幕av片| 久久人人爽人人爽| 北条麻妃在线视频观看| 精品一区av| 国产不卡av在线| 国产成人l区| 亚洲欧洲在线视频| a天堂视频在线| 色综合久久中文字幕| 男女性高潮免费网站| 激情综合网av| 免费看一级大黄情大片| 1024精品久久久久久久久| 成人黄色免费片| 免费观看久久久久| 亚洲精品不卡在线| 国产精品爽爽久久| 亚洲精选在线视频| 精品国产av无码| 丁香桃色午夜亚洲一区二区三区| 青草网在线观看| 日韩理论电影大全| 久久久一本精品99久久精品| 中国字幕a在线看韩国电影| 久久久精品国产一区二区| 男人久久精品| 欧美日韩中文字幕一区二区| 日韩av电影网址| 91毛片在线观看| 三大队在线观看| 久久国产成人午夜av影院| 中文字幕一区二区三区四区五区六区| 欧美特黄色片| 欧美一级视频免费在线观看| 青春草免费在线视频| 久久精品亚洲一区| av在线电影院| 国产午夜精品全部视频播放| 四虎国产精品永远| 亚洲精品久久在线| 国产男男gay网站| 欧美日韩国产综合一区二区三区| 欧美爱爱免费视频| 成人一级片网址| 成人三级做爰av| 国产一区在线看| 99日在线视频| 亚洲每日更新| 精品无码国产一区二区三区av| 你懂的视频一区二区| 手机成人av在线| 97视频精品| 国内精品久久久久久久果冻传媒| 最新日韩三级| 欧美另类69精品久久久久9999| 天天舔天天干天天操| 精品国产区一区| 日韩不卡高清视频| 在线看一区二区| 中文字幕人妻色偷偷久久| 欧美优质美女网站| 久久这里只有精品国产| 亚洲一区二区三区视频在线| 欧美做受高潮6| 国产日韩v精品一区二区| www亚洲色图| 亚洲三级在线观看| 91精品人妻一区二区三区| 久久婷婷色综合| 亚洲色成人网站www永久四虎| 国产午夜亚洲精品不卡| 亚洲色图 激情小说| 国产精品久久一卡二卡| 一区二区三区免费在线观看视频| 91丨porny丨首页| 久久久久久亚洲中文字幕无码| 欧美激情在线看| 久久免费看少妇高潮v片特黄| 一区二区久久久| 福利视频第一页| 亚洲精品视频免费看| 久久精品免费av| 日韩欧美亚洲一二三区| 久久久综合久久| 五月激情六月综合| 国产精品欧美综合| 欧美一级日韩不卡播放免费| 韩国av中文字幕| 欧美午夜寂寞影院| 国产后入清纯学生妹| 精品亚洲精品福利线在观看| 1769在线观看| 欧美黄色片视频| 欧美va在线观看| 91久久偷偷做嫩草影院| 亚洲97av| 艳母动漫在线免费观看| 99在线观看免费视频精品观看| 天堂av在线网站| 国产成人av电影在线播放| 国产成人精品无码免费看夜聊软件| 中文字幕不卡的av| 中文天堂资源在线| 一区av在线播放| 无码久久精品国产亚洲av影片| 69久久夜色精品国产69蝌蚪网| 亚欧在线观看视频| 久久成人国产精品| 亚洲卡一卡二| 精品少妇一区二区30p| 欧洲一区二区三区精品| 99一区二区三区| 在这里有精品| 午夜欧美性电影| 日韩视频三区| 在线观看中文av| 高清不卡在线观看| 欧美视频一区二区在线| 色综合久久综合网97色综合| 亚洲精品一级片| 亚洲成色www8888| 免费在线观看黄| 国产精品成人观看视频国产奇米| av综合网址| 欧美不卡三区| 国内精品美女在线观看 | 美女被艹视频网站| 中文字幕国产一区二区| 久久精品视频7| 在线精品观看国产| 特黄aaaaaaaaa真人毛片| 久久人人爽人人爽人人片亚洲| 亚洲成人激情社区| 精品视频第一区| 亚洲大胆在线| 日本黄色三级大片| 成人黄色在线视频| 亚洲av无码一区二区二三区| 国产丝袜欧美中文另类| 国产成人一区二区三区影院在线| 欧美性xxxx极品hd满灌| 国产 日韩 欧美 综合| 亚洲欧美一区二区精品久久久| 国产乱视频在线观看| 欧美在线一区二区视频| 日韩欧美中文字幕电影| 少妇无码av无码专区在线观看 | 国产乱码精品| 日本三区在线观看| 久久婷婷色综合| 国产一级一级国产| 亚洲视频日韩精品| 欧美粗大gay| 日韩精彩视频| 九色porny丨国产精品| 国产亚洲精品久久久久久豆腐| 欧美日韩视频专区在线播放| 久久77777| 69久久夜色精品国产69乱青草| 超碰这里只有精品| 色女孩综合网| 久久av老司机精品网站导航| 国产一区第一页| 欧美顶级少妇做爰| 1区2区在线观看| 国产精品一区二| 国产精品腿扒开做爽爽爽挤奶网站| 欧美一区二区三区成人精品| 日本高清不卡视频| 在线观看精品一区二区三区| 91亚洲一区精品| 激情综合网站| www.日本少妇| 91在线国内视频| 不卡av电影在线| 亚洲国产精品推荐| 这里有精品可以观看| 日韩三级在线播放| 国产精品99久久久久久久女警 | 国产精品18久久久久久首页狼| 国产一区网站| 亚洲综合伊人久久| 婷婷综合五月天| www在线免费观看| 1卡2卡3卡精品视频| 一本色道久久| 国产亚洲精品久久久久久豆腐| 欧美成人精品福利| 日本在线免费网| 国产精品播放| 日韩专区在线视频| 欧美黄色免费看| 日韩一区二区中文字幕| 国产盗摄一区二区| 日韩和欧美的一区二区| 高清shemale亚洲人妖| 日韩人妻精品中文字幕| 萌白酱国产一区二区| 天堂综合网久久| 欧美激情国内自拍| 欧美日韩亚洲精品内裤| 福利在线视频网站| 欧美中日韩免费视频| 国产高清久久久| 中文字幕乱码一区二区| 午夜精品一区二区三区在线视| **女人18毛片一区二区|