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

Java8新特性,Stream入門詳解,豐富案例等你細(xì)品

開發(fā) 前端
Stream流是JDK8新增用來(lái)處理集合、數(shù)組、文件等數(shù)據(jù),借助Lambda表達(dá)式,極大提高編程效率和程序可讀性,同時(shí)擁有串行和并行兩種數(shù)據(jù)處理模式,并行模式可以充分利用多核CPU性能,通過(guò) fork/join 方式拆解任務(wù)加速處理。

JDK8的重要更新除去Lambda之外還有Stream,兩者結(jié)合使用為操作和計(jì)算數(shù)據(jù)提供了極大的便利。

本篇文章并不打算長(zhǎng)篇大論,文章過(guò)長(zhǎng)會(huì)閱讀疲勞,Stream也并不是一兩篇文章可以介紹清楚的,本篇主要介紹Stream的簡(jiǎn)單理論加上案例來(lái)體會(huì)一下Stream的作用,便利和魅力,后續(xù)文章會(huì)系統(tǒng)講解Stream體系!

Stream是什么

Stream就是【流】的意思,與 java.io包中的輸入流,輸出流是兩個(gè)不同的概念

Stream流是JDK8新增用來(lái)處理集合、數(shù)組、文件等數(shù)據(jù),借助Lambda表達(dá)式,極大提高編程效率和程序可讀性,同時(shí)擁有串行和并行兩種數(shù)據(jù)處理模式,并行模式可以充分利用多核CPU性能,通過(guò) fork/join 方式拆解任務(wù)加速處理。

Stream好處

  • 函數(shù)式編程:讓Java原本臃腫的代碼變的簡(jiǎn)潔,這當(dāng)然是需要配合Lambda實(shí)現(xiàn)
  • 高效的并行處理機(jī)制,比之前的for循環(huán)加if...else,挨個(gè)元素處理速度要快上許多
  • 具有多種數(shù)據(jù)的處理實(shí)現(xiàn),比如篩選,去重,轉(zhuǎn)換,查詢,遍歷等內(nèi)置操作

Stream特點(diǎn)

  • 流與集合、數(shù)組、文件不同,不是數(shù)據(jù)結(jié)構(gòu),不存儲(chǔ)數(shù)據(jù),目的是處理數(shù)據(jù),將處理結(jié)果返回或者轉(zhuǎn)換
  • 流在計(jì)算數(shù)據(jù)時(shí),如果需要使用到集合中元素,會(huì)取出使用,并不修改源數(shù)據(jù),流只使用數(shù)據(jù)一次
  • 支持延遲計(jì)算,只有等到執(zhí)行終止操作時(shí)才會(huì)執(zhí)行計(jì)算,可以降低不必要的CPU資源浪費(fèi)

Stream操作分類

  • 創(chuàng)建流:可以通過(guò)集合、數(shù)組、IO資源、Stream的構(gòu)造函數(shù)創(chuàng)建
  • 中間操作:對(duì)數(shù)據(jù)的計(jì)算操作,比如篩選,去重,轉(zhuǎn)換等操作,一個(gè)中間操作返回一個(gè)新的Stream,來(lái)支持連續(xù)計(jì)算
  • 終止操作:每個(gè)流只能有一次終止操作,終止之后流無(wú)法使用,會(huì)產(chǎn)生一個(gè)計(jì)算結(jié)果,可以根據(jù)需求轉(zhuǎn)換為想要的結(jié)果類型

概念先不說(shuō)那么多,免得云里霧里,接下來(lái)我們直接通過(guò)案例來(lái)使用Stream對(duì)集合的操作

案例:

  • 獲取運(yùn)費(fèi)大于5000元的運(yùn)單,并放到新集合中
  • 將推薦運(yùn)單按照運(yùn)費(fèi)從高到低排序
  • 統(tǒng)計(jì)最高運(yùn)費(fèi),最低運(yùn)費(fèi),平均運(yùn)費(fèi)
  • 將運(yùn)單按照運(yùn)費(fèi)從高到低排序,相同者按照距離從高到低排序
  • 將運(yùn)單按貨物類型分類,將運(yùn)單按貨物類型和目的地分類,將運(yùn)單按照運(yùn)費(fèi)是否高于5000元分為兩部分

接下來(lái)通過(guò)傳統(tǒng)方式和Stream兩種分別實(shí)現(xiàn),對(duì)比不同

提前準(zhǔn)備:

import java.math.BigDecimal;

public class Waybill {
// id
private Long id;
// 運(yùn)單編號(hào)
private String wayNo;
// 運(yùn)費(fèi)
private BigDecimal price;
// 貨物類型
private String freightType;
// 距離
private BigDecimal distance;
// 目的地
private String endAddress;

public Waybill(Long id, String wayNo, BigDecimal price, String freightType, BigDecimal distance, String endAddress) {
this.id = id;
this.wayNo = wayNo;
this.price = price;
this.freightType = freightType;
this.distance = distance;
this.endAddress = endAddress;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getWayNo() {
return wayNo;
}

public void setWayNo(String wayNo) {
this.wayNo = wayNo;
}

public BigDecimal getPrice() {
return price;
}

public void setPrice(BigDecimal price) {
this.price = price;
}

public String getFreightType() {
return freightType;
}

public void setFreightType(String freightType) {
this.freightType = freightType;
}

public BigDecimal getDistance() {
return distance;
}

public void setDistance(BigDecimal distance) {
this.distance = distance;
}

public String getEndAddress() {
return endAddress;
}

public void setEndAddress(String endAddress) {
this.endAddress = endAddress;
}

@Override
public String toString() {
return "Waybill{" +
"id=" + id +
", wayNo='" + wayNo + '\'' +
", price=" + price +
", freightType='" + freightType + '\'' +
", distance=" + distance +
", endAddress='" + endAddress + '\'' +
'}';
}
}

1、獲取運(yùn)費(fèi)大于5000元的運(yùn)單,并放到新集合中

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class WaybillMain {
private static List<Waybill> waybills = new ArrayList<>();

static {
// 創(chuàng)建數(shù)據(jù)
waybills.add(new Waybill(1L,"Y11111111111",new BigDecimal(1000),"鋼材",new BigDecimal(200),"上海市"));
waybills.add(new Waybill(2L,"Y22222222222",new BigDecimal(2000),"鋼材",new BigDecimal(300),"鄭州市"));
waybills.add(new Waybill(3L,"Y33333333333",new BigDecimal(3000),"水泥",new BigDecimal(300),"北京市"));
waybills.add(new Waybill(4L,"Y44444444444",new BigDecimal(4000),"水泥",new BigDecimal(400),"廣州市"));
waybills.add(new Waybill(5L,"Y55555555555",new BigDecimal(5000),"沙子",new BigDecimal(500),"上海市"));
waybills.add(new Waybill(6L,"Y66666666666",new BigDecimal(6000),"板材",new BigDecimal(500),"深圳市"));
waybills.add(new Waybill(7L,"Y77777777777",new BigDecimal(7000),"蔬菜",new BigDecimal(500),"杭州市"));
}

public static void main(String[] args){
// 1、傳統(tǒng)寫法
// 獲取運(yùn)費(fèi)大于5000元的運(yùn)單,并放到新集合中
List<Waybill> newWaybills = new ArrayList<Waybill>();
for (Waybill waybill : waybills) {
// 判斷價(jià)格大于5000,BigDecimal需要使用compareTo方法比較
// 1:左邊比右邊大,0:相等,-1:右邊比左邊大
if(waybill.getPrice().compareTo(new BigDecimal(5000)) == 1) {
newWaybills.add(waybill);
}
}
// 遍歷
for (Waybill newWaybill : newWaybills) {
System.out.println(newWaybill);
}
// 2、Stream + Lambda寫法
System.out.println("**華麗麗的分割線**");
// 1) 通過(guò)集合的stream()方法創(chuàng)建流對(duì)象
Stream<Waybill> stream = waybills.stream();
// 2) 通過(guò)流對(duì)象的方法計(jì)算數(shù)據(jù),filter:過(guò)濾數(shù)據(jù)
// filter接收一個(gè)過(guò)濾條件,item為當(dāng)前操作的元素,比較價(jià)格是否大于5000,滿足條件的過(guò)濾出來(lái),放到一個(gè)新的Stream對(duì)象中
Stream<Waybill> waybillStream = stream.filter(item -> item.getPrice().compareTo(new BigDecimal(5000)) == 1);
// 3) 將過(guò)濾后的stream轉(zhuǎn)換為新的集合,調(diào)用collect方法即可,toList()轉(zhuǎn)換為L(zhǎng)ist集合,toSet轉(zhuǎn)換為Set集合
List<Waybill> collect = waybillStream.collect(Collectors.toList());
// 遍歷,通過(guò)方法引用遍歷
collect.forEach(System.out::println);
}
}

運(yùn)行結(jié)果:

解釋:

  • filter():方法就是中間操作,意為過(guò)濾符合條件的數(shù)據(jù),但是這個(gè)數(shù)據(jù)你還不使用,就先不執(zhí)行
  • collect():方法是終結(jié)操作,意為要將Stream的計(jì)算結(jié)果轉(zhuǎn)換為一個(gè)List集合,Stream認(rèn)為你要用計(jì)算結(jié)果了,所以會(huì)執(zhí)行計(jì)算,之后保存結(jié)果到新的集合中
  • 計(jì)算過(guò)程Stream中是不存儲(chǔ)數(shù)據(jù)的,沒(méi)有獲取數(shù)據(jù)的方法

2、將推薦運(yùn)單按照運(yùn)費(fèi)從高到低排序

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class WaybillMain {

private static List<Waybill> waybills = new ArrayList<>();

static {
// 創(chuàng)建數(shù)據(jù)
waybills.add(new Waybill(1L,"Y11111111111",new BigDecimal(1000),"鋼材",new BigDecimal(200),"上海市"));
waybills.add(new Waybill(2L,"Y22222222222",new BigDecimal(2000),"鋼材",new BigDecimal(300),"鄭州市"));
waybills.add(new Waybill(3L,"Y33333333333",new BigDecimal(3000),"水泥",new BigDecimal(300),"北京市"));
waybills.add(new Waybill(4L,"Y44444444444",new BigDecimal(4000),"水泥",new BigDecimal(400),"廣州市"));
waybills.add(new Waybill(5L,"Y55555555555",new BigDecimal(5000),"沙子",new BigDecimal(500),"上海市"));
waybills.add(new Waybill(6L,"Y66666666666",new BigDecimal(6000),"板材",new BigDecimal(500),"深圳市"));
waybills.add(new Waybill(7L,"Y77777777777",new BigDecimal(7000),"蔬菜",new BigDecimal(500),"杭州市"));
}

public static void main(String[] args) {
// 1、升序排序
List<Waybill> collect1 = waybills.stream().sorted(Comparator.comparing(Waybill::getPrice)).collect(Collectors.toList());
System.out.println("**升序排序**");
collect1.forEach(System.out::println);
// 2、降序排序,調(diào)用reversed方法即可降序
List<Waybill> collect2 = waybills.stream().sorted(Comparator.comparing(Waybill::getPrice).reversed()).collect(Collectors.toList());
System.out.println("**降序排序**");
collect2.forEach(System.out::println);

// 3、如果只想獲取運(yùn)單號(hào)
List<String> collect3 = waybills.stream().sorted(Comparator.comparing(Waybill::getPrice)).map(Waybill::getWayNo).collect(Collectors.toList());
System.out.println("**降序只獲取運(yùn)單號(hào)**");
collect3.forEach(System.out::println);
// 4、先按距離,再按運(yùn)費(fèi),通過(guò)thenComparing方法做繼續(xù)排序
List<Waybill> collect4 = waybills.stream().sorted(Comparator.comparing(Waybill::getDistance).thenComparing(Waybill::getPrice)).collect(Collectors.toList());
System.out.println("**先按距離再按運(yùn)費(fèi)**");
collect4.forEach(System.out::println);

// 5、自定義排序
List<Waybill> collect5 = waybills.stream().sorted((o1, o2) -> {
// 排序規(guī)則:根據(jù)貨物類型排序,相同的根據(jù)距離排序
if (o1.getFreightType().equals(o2.getFreightType())) {
return o1.getDistance().compareTo(o2.getDistance());
} else {
return o1.getFreightType().compareTo(o2.getFreightType());
}
}).collect(Collectors.toList());
System.out.println("**自定義排序: 根據(jù)貨物類型排序,相同的根據(jù)距離排序**");
collect5.forEach(System.out::println);
}
}

運(yùn)行結(jié)果:

3、統(tǒng)計(jì)最高運(yùn)費(fèi),最低運(yùn)費(fèi),平均運(yùn)費(fèi)

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class WaybillMain {

private static List<Waybill> waybills = new ArrayList<>();

static {
// 創(chuàng)建數(shù)據(jù)
waybills.add(new Waybill(1L,"Y11111111111",new BigDecimal(1000),"鋼材",new BigDecimal(200),"上海市"));
waybills.add(new Waybill(2L,"Y22222222222",new BigDecimal(2000),"鋼材",new BigDecimal(300),"鄭州市"));
waybills.add(new Waybill(3L,"Y33333333333",new BigDecimal(3000),"水泥",new BigDecimal(300),"北京市"));
waybills.add(new Waybill(4L,"Y44444444444",new BigDecimal(4000),"水泥",new BigDecimal(400),"廣州市"));
waybills.add(new Waybill(5L,"Y55555555555",new BigDecimal(5000),"沙子",new BigDecimal(500),"上海市"));
waybills.add(new Waybill(6L,"Y66666666666",new BigDecimal(6000),"板材",new BigDecimal(500),"深圳市"));
waybills.add(new Waybill(7L,"Y77777777777",new BigDecimal(7000),"蔬菜",new BigDecimal(500),"杭州市"));
}

public static void main(String[] args){
// 1、最高運(yùn)費(fèi),通過(guò)max方法
Optional<Waybill> max = waybills.stream().max(Comparator.comparing(Waybill::getPrice));
System.out.println("**運(yùn)費(fèi)最高**");
System.out.println(max);
// 2、最低運(yùn)費(fèi),通過(guò)min方法
Optional<Waybill> min = waybills.stream().min(Comparator.comparing(Waybill::getPrice));
System.out.println("**運(yùn)費(fèi)最低**");
System.out.println(min);
// 3、平均運(yùn)費(fèi),通過(guò) Collectors.averagingDouble計(jì)算平均值,需要將 BigDecimal轉(zhuǎn)換為double類型
Double avg = waybills.stream().collect(Collectors.averagingDouble(item -> item.getPrice().doubleValue()));
System.out.println("**平均運(yùn)費(fèi)**");
System.out.println(avg);
}

}

運(yùn)行截圖:

4、將運(yùn)單按貨物類型分類,將運(yùn)單按貨物類型和目的地分類,將運(yùn)單按照運(yùn)費(fèi)是否高于5000元分為兩部分

import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class WaybillMain {

private static List<Waybill> waybills = new ArrayList<>();

static {
// 創(chuàng)建數(shù)據(jù)
waybills.add(new Waybill(1L,"Y11111111111",new BigDecimal(1000),"鋼材",new BigDecimal(200),"上海市"));
waybills.add(new Waybill(2L,"Y22222222222",new BigDecimal(2000),"鋼材",new BigDecimal(300),"鄭州市"));
waybills.add(new Waybill(3L,"Y33333333333",new BigDecimal(3000),"水泥",new BigDecimal(300),"北京市"));
waybills.add(new Waybill(4L,"Y44444444444",new BigDecimal(4000),"水泥",new BigDecimal(400),"廣州市"));
waybills.add(new Waybill(5L,"Y55555555555",new BigDecimal(5000),"沙子",new BigDecimal(500),"上海市"));
waybills.add(new Waybill(6L,"Y66666666666",new BigDecimal(6000),"板材",new BigDecimal(500),"深圳市"));
waybills.add(new Waybill(7L,"Y77777777777",new BigDecimal(7000),"蔬菜",new BigDecimal(500),"杭州市"));
}

public static void main(String[] args) {
// 1、運(yùn)單按貨物類型分類
Map<String, List<Waybill>> collect1 = waybills.stream().collect(Collectors.groupingBy(Waybill::getFreightType));
System.out.println("** 運(yùn)單按貨物類型分類 **");
collect1.forEach((key,value) -> {
System.out.println("key==>" + key + ",value==>" + value);
});

// 2、運(yùn)單按貨物類型和目的地分類
Map<String, Map<String, List<Waybill>>> collect2 = waybills.stream().collect(Collectors.groupingBy(Waybill::getFreightType, Collectors.groupingBy(Waybill::getEndAddress)));
System.out.println("** 運(yùn)單按貨物類型和目的地分類 **");
collect2.forEach((key,value) -> {
System.out.println("key==>" + key + ",value==>" + value);
});

// 3、運(yùn)單按照運(yùn)費(fèi)是否高于5000元分為兩部分,這個(gè)叫分區(qū)了
Map<Boolean, List<Waybill>> collect3 = waybills.stream().collect(Collectors.partitioningBy(item -> item.getPrice().compareTo(new BigDecimal(5000)) == 1));
System.out.println("** 運(yùn)單按照5000分區(qū) **");
collect3.forEach((key,value) -> {
System.out.println("key==>" + key + ",value==>" + value);
});
}

}

運(yùn)行截圖:

總結(jié)

  • Stream的概念、好處、特點(diǎn)和操作分類
  • Stream操作集合案例,體會(huì)便利之處
  • 案例自己寫幾遍,再觀察自己的項(xiàng)目中哪里可以使用Stream替換
責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2022-12-09 07:48:10

Java8Stream表達(dá)式

2024-10-09 08:42:03

2015-08-28 09:43:49

Java 8新特性處理集合

2021-03-02 07:13:54

Java8版本升級(jí)

2014-04-16 07:43:31

Java 8JRE

2021-03-04 08:14:37

Java8開發(fā)接口

2014-07-15 14:12:17

Java8

2021-02-22 11:51:15

Java開發(fā)代碼

2023-07-19 08:03:05

Future異步JDK

2023-05-12 07:40:01

Java8API工具

2014-07-15 14:48:26

Java8

2023-07-03 08:20:35

MySQL窗口函數(shù)

2012-06-12 11:07:56

筆記本評(píng)測(cè)

2023-03-15 17:37:26

Java8ListMap

2025-09-19 00:00:00

Java8HOT3Oracle

2014-10-20 13:57:59

JavaFX 8Java 8

2021-05-06 20:03:00

JavaStream代碼

2021-10-18 09:38:02

JavaJava8編程語(yǔ)言

2014-07-14 11:34:53

Java 8Nashorn

2017-10-25 11:05:14

Java
點(diǎn)贊
收藏

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

中文精品一区二区三区| 久久久国产视频91| 国产a级片免费观看| 国产成人天天5g影院在线观看| 日韩精品成人一区二区在线| 北条麻妃久久精品| 欧美激情第四页| 超碰97免费在线| 国产欧美日本一区视频| 亚洲www视频| 精品不卡一区二区| 亚洲精品99| 亚洲午夜色婷婷在线| 欧美69精品久久久久久不卡| 亚洲第一影院| 亚洲一区二区三区小说| 色女人综合av| 日本精品一二区| 麻豆精品一区二区| 91av视频在线| 538精品在线观看| 久久成人av| 亚洲电影第1页| 免费不卡av网站| 亚洲成人av观看| 狠狠躁夜夜躁人人爽天天天天97| 国产三级中文字幕| 91精彩在线视频| 91在线视频免费91| 成人毛片网站| 国产在成人精品线拍偷自揄拍| 香蕉成人久久| 久久久久久国产精品美女| 国产三级精品三级观看| 国产欧美一区| 亚洲欧美国产日韩中文字幕| 性活交片大全免费看| 99国内精品久久久久| 欧美亚洲丝袜传媒另类| jizzjizzxxxx| 成人影院网站| 欧美日韩性生活视频| 久久精品xxx| 日本片在线观看| 亚洲人精品午夜| 国产高清精品软男同| 1024国产在线| 国产精品美女一区二区在线观看| 欧美日韩一区在线播放| 欧洲免费在线视频| 2020国产精品久久精品美国| 久久九九视频| 可以在线观看的黄色| 91在线视频免费91| 久久亚洲免费| 精品视频一二区| 国产亚洲一本大道中文在线| 欧美日韩一区二区三区在线视频 | 国产极品视频在线观看| 精品在线91| 国产一区二区黄| 精品人体无码一区二区三区| 99久久综合| 美女少妇精品视频| 久久99久久98精品免观看软件| 欧美日韩四区| 午夜精品久久久久久久99黑人| 日韩大片免费在线观看| 美女爽到呻吟久久久久| 国产成人精品免费久久久久 | 精品一区电影国产| 国产精品无码一区二区三区| 欧美亚洲在线日韩| 日日噜噜噜夜夜爽亚洲精品 | 淫片在线观看| 亚洲精品午夜久久久| www.好吊操| 欧美极品影院| 在线不卡免费欧美| 第一页在线视频| 人人精品视频| 最好看的2019的中文字幕视频| 日本 欧美 国产| 狠狠入ady亚洲精品| 欧日韩不卡在线视频| 91九色蝌蚪91por成人| 国产精品一卡二| 久久精品日产第一区二区三区精品版| 成人在线播放视频| 亚洲综合免费观看高清完整版在线| 黄色一级在线视频| 国产综合色激情| 欧美va日韩va| 国产黄色大片免费看| 中文字幕av亚洲精品一部二部| 午夜精品三级视频福利| 久久这里只有精品9| 国产成人av福利| 日韩电影天堂视频一区二区| 超碰免费公开在线| 精品久久香蕉国产线看观看亚洲| 91精品无人成人www| 国产一区在线电影| 日韩在线视频网站| 天天综合网入口| 激情综合色播激情啊| 久久久久久久久久久久久久一区 | 欧美有码在线观看| 国产av无码专区亚洲av麻豆| 久久久av毛片精品| 国产精品视频网站在线观看| 久久久精品一区二区毛片免费看| 亚洲福利视频网站| 四虎永久免费地址| 久久亚洲精品伦理| 国产精品久久亚洲| 黄色在线免费| 欧美在线小视频| 成人免费无码大片a毛片| 亚洲成人一区| 国产欧美亚洲精品| 国产视频第一区| 欧美午夜视频一区二区| 亚洲熟妇一区二区| 99久久www免费| 国产精品免费小视频| 少妇高潮一区二区三区69| 亚洲三级在线观看| 国产视频在线视频| 丝袜美腿综合| 91精品国产乱码久久久久久久久 | 88av在线视频| 国产欧美1区2区3区| 18禁免费无码无遮挡不卡网站| 亚洲午夜精品| 欧美高清在线观看| 精品人妻一区二区三区日产乱码 | 精品视频在线播放| 日韩 欧美 精品| 成人免费视频一区二区| www.欧美黄色| 91久久偷偷做嫩草影院电| 色哟哟网站入口亚洲精品| 69av视频在线观看| 国产亚洲视频系列| 看欧美ab黄色大片视频免费| 国产日产一区 | 国产日本欧洲亚洲| 农村妇女精品一二区| 免费成人高清在线视频theav| 97精品国产aⅴ7777| 熟妇人妻av无码一区二区三区| 亚洲综合丁香婷婷六月香| 成人性生交视频免费观看| 久久一区91| 91久久中文字幕| 国产激情在线视频| 日韩欧美一级二级三级| 久久人人爽人人爽人人| 国产不卡高清在线观看视频| 中文字幕日韩精品无码内射| 哺乳一区二区三区中文视频| 久久久视频精品| 日韩精品系列| 欧美日韩在线一区二区| 黄色香蕉视频在线观看| 国产精品一区二区果冻传媒| 日本手机在线视频| 婷婷激情久久| 国产日韩欧美综合| 色爱综合区网| 亚洲精品国产拍免费91在线| 免费又黄又爽又猛大片午夜| 中文字幕亚洲电影| 久久久久中文字幕亚洲精品| 在线日韩欧美| 日本最新一区二区三区视频观看| 成人全视频免费观看在线看| 久久综合免费视频| 天堂av手机版| 欧美亚洲国产bt| 欧美三级日本三级| 久久综合九色综合97婷婷| 亚洲人辣妹窥探嘘嘘| 一本精品一区二区三区| 精品久久久久久中文字幕动漫| 一二区成人影院电影网| 久久99精品久久久久久噜噜| 头脑特工队2在线播放| 欧美三级蜜桃2在线观看| 欧美黄色一级网站| 久久久精品国产99久久精品芒果| 国产aⅴ爽av久久久久| 亚洲激情专区| 亚洲人成影视在线观看| 国产劲爆久久| 成人国产精品一区二区| 亚洲十八**毛片| 麻豆成人在线看| 国产视频在线看| 亚洲成人激情图| 国产一区二区三区在线观看| 精品久久香蕉国产线看观看gif| 天天干天天操天天拍| 本田岬高潮一区二区三区| 日韩精品你懂的| 国产视频久久| 欧美黑人在线观看| 99热国内精品永久免费观看| 免费看污久久久| 亚洲性视频在线| 国产自产女人91一区在线观看| 黑森林国产精品av| 欧美裸身视频免费观看| yjizz视频网站在线播放| 欧美精品一区二区三区在线播放| 中文字幕人成人乱码亚洲电影| 午夜精品久久久久久久久久| fc2ppv在线播放| 欧美高清在线视频| 日本xxx在线播放| 国产不卡视频在线观看| 操人视频免费看| 免费在线中文字幕| 蜜臀av性久久久久蜜臀aⅴ| 亚洲一区三区电影在线观看| 亚洲成a人片77777在线播放| 痴汉一区二区三区| 国产剧情一区二区在线观看| 国产精品视频网站| 精品3atv在线视频| 欧美一级片在线播放| www在线观看黄色| 久久久久免费视频| 欧美人与性动交α欧美精品济南到| 日韩视频永久免费观看| 自拍视频在线免费观看| 在线国产精品视频| 国产系列电影在线播放网址| 精品国产一级片| 欧美一区二区三区成人| 91精品在线视频观看| 欧美乱妇20p| 亚洲综合网av| 3751色影院一区二区三区| 亚洲图片欧美在线| 欧美日韩成人一区二区| 一区二区三区免费在线| 欧美精选一区二区| 一二三区中文字幕| 51精品国自产在线| 精品国产无码一区二区| 欧美大黄免费观看| 日韩中文字幕免费在线观看| 亚洲精品一区二区三区精华液 | 亚洲国产成人不卡| 日韩欧美精品一区| 国产又爽又黄ai换脸| 亚洲精品888| 国产一线二线三线女| 亚洲精品社区| 亚洲国产精品毛片av不卡在线| 日韩精品久久理论片| 中文字幕av不卡在线| 国内精品久久久久影院色| 中文字幕人妻熟女人妻a片| 成人少妇影院yyyy| 免费在线观看你懂的| 欧美激情在线观看视频免费| 午夜国产小视频| 亚洲.国产.中文慕字在线| 狠狠人妻久久久久久| 欧洲av一区二区嗯嗯嗯啊| 一级片在线免费观看视频| 欧美一级欧美三级| 日批视频在线播放| 尤物九九久久国产精品的特点| 久热国产在线| 午夜精品一区二区三区在线视频| 日本美女一区| 91久久久在线| 九九久久成人| 三年中国中文在线观看免费播放| 激情婷婷亚洲| 国产嫩草在线观看| 岛国精品一区二区| 色婷婷在线影院| 亚洲精品免费在线播放| www.国产色| 欧美久久久久免费| 香蕉视频黄在线观看| 日韩中文字幕免费视频| 丰满大乳少妇在线观看网站| 国产精品aaaa| youjizz亚洲| 亚洲一二三区在线| 亚洲欧洲一级| 国产性生活一级片| 久久久久国产精品免费免费搜索| 三级全黄做爰视频| 色狠狠色噜噜噜综合网| 国产成人精品一区二区无码呦| 亚洲欧美国产精品久久久久久久| 天堂va在线| 国产成人av在线| 盗摄系列偷拍视频精品tp| 亚洲人体一区| 久久综合狠狠| 日韩精品视频一区二区| 亚洲三级免费观看| 青娱乐在线免费视频| 亚洲精品国产suv| 宅男网站在线免费观看| 国产精品专区h在线观看| 欧美jizz19性欧美| 黄色一级大片免费| 免播放器亚洲一区| 老鸭窝一区二区| 亚洲高清三级视频| 国产强伦人妻毛片| 日韩有码视频在线| 99riav视频一区二区| 欧美黑人3p| 午夜宅男久久久| 岛国精品资源网站| 亚洲一区精品在线| 99在线精品视频免费观看20| 中文字幕亚洲一区| 美女色狠狠久久| 日韩精品欧美一区二区三区| 午夜一级在线看亚洲| xxxx黄色片| 亚洲成人一区二区在线观看| www.热久久| 美女撒尿一区二区三区| 久久69av| 天堂av在线中文| 国产麻豆视频一区| 日本一级二级视频| 日韩一区二区在线观看视频| 久做在线视频免费观看| 96精品久久久久中文字幕| 国产精品99一区二区三区| 日韩av.com| 亚洲欧洲综合另类| 国产三级漂亮女教师| 毛片精品免费在线观看| 日韩高清在线观看一区二区| 日韩欧美视频免费在线观看| 国产v日产∨综合v精品视频| 久久在线视频精品| 亚洲精品一区二区三区99| 精品丝袜在线| 欧美日本亚洲| 久久精品久久久精品美女| 色婷婷粉嫩av| 日韩三级视频在线观看| 免费在线看电影| 国产精品一区视频| 亚洲综合日韩| 怡红院一区二区三区| 欧美日韩在线三区| 婷婷丁香在线| 久久久久久久久久久一区| 免费人成精品欧美精品 | 一区二区三区在线播放| 免费国产黄色片| 日韩av免费在线观看| 日韩一区三区| 日本wwwwwww| 欧美日韩国产综合新一区| 番号在线播放| 91香蕉电影院| 一本色道久久精品| 亚洲а∨天堂久久精品2021| 6080亚洲精品一区二区| av中文字幕在线看| 欧美亚洲另类久久综合| 国产专区欧美精品| 日产电影一区二区三区| 伊人久久久久久久久久久| 精品视频在线播放一区二区三区| 男人天堂a在线| 欧美国产成人精品| 成人毛片在线精品国产| 国产精品久久久91| 欧美午夜不卡| 91国模少妇一区二区三区| 69成人精品免费视频| 擼擼色在线看观看免费| 影音先锋欧美在线| 99久久精品免费看国产| 一级淫片免费看| 4p变态网欧美系列| 性xxxx欧美老肥妇牲乱| theav精尽人亡av| 日韩欧美资源站| 91在线亚洲| 国产资源在线视频| 亚洲激情图片qvod|