国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

Scala基礎(chǔ)語法總結(jié)

 更新時間:2023年11月01日 11:22:03   投稿:wdc  
這篇文章主要介紹了Scala基礎(chǔ)語法總結(jié),需要的朋友可以參考下

一、變量

val/var 變量名稱:變量類型 = 初始值

注意:

  • val定義的是不可重新賦值的變量(值不可修改)

  • var定義的是可重新賦值的變量(值可以修改)

  • scala中聲明變量是變量名稱在前,變量類型在后,跟java是正好相反

  • scala的語句最后不需要添加分號、、

 惰性變量

  • Scala中使用==關(guān)鍵字lazy==來定義惰性變量,實現(xiàn)延遲加載(懶加載)。

  • 惰性變量只能是不可變變量,并且只有在調(diào)用惰性變量時,才會去實例化這個變量。

  • 語法格式

lazy val 變量名 = 表達式

 二、數(shù)據(jù)類型

基礎(chǔ)類型類型說明
Byte8位帶符號整數(shù)
Short16位帶符號整數(shù)
Int32位帶符號整數(shù)
Long64位帶符號整數(shù)
Char16位無符號Unicode字符
StringChar類型的序列(字符串)
Float32位單精度浮點數(shù)
Double64位雙精度浮點數(shù)
Booleantrue或false

1. scala中所有的類型都使用大寫字母開頭,說明是它是“類”
2. 整形使用Int而不是Integer
3. scala中定義變量可以不寫類型,讓scala編譯器自動推斷 

三、scala中的條件表達式

1、if表達式

這個和java差不多,可以加括號,或者不加括號

  def main(args: Array[String]): Unit = {
     val x:Int=2
     if (x>10) println(x)
     else println(x+x)
}

打印為2

2、塊表達式

定義變量時用 {} 包含一系列表達式,其中塊的最后一個表達式的值就是塊的值

  def main(args: Array[String]): Unit = {

    val x = 0
    val result = {
      val y = x + 10
      val z = y + "-hello"
      val m = z + "-kaikeba"
      "over"
    }
    println(result)
}

打印結(jié)果

over

Process finished with exit code 0

返回值就是m了 

  def main(args: Array[String]): Unit = {
    val x = 0
    val result = {
      val y = x + 10
      val z = y + "-hello"
      val m = z + "-kaikeba"
      m
    }
    println(result)
}

打印結(jié)果

10-hello-kaikeba

四、循環(huán)

在scala中,可以使用for和while,但一般推薦使用for表達式,因為for表達式語法更簡潔

for (i <- 表達式/數(shù)組/集合){
    //表達式
}

1、簡單for循環(huán)

def main(args: Array[String]): Unit = {
    var nums=1 to 10
    //for循環(huán)
    for(i <- nums) println(i)
}

2、雙層for循環(huán)

  def main(args: Array[String]): Unit = {

    //雙層for循環(huán)
    for (i <- 1 to 3; j <- 1 to 3)
      println(i * 10 + j)
}

打印的值為

11
12
13
21
22
23
31
32
33

3、守衛(wèi):在for表達式中可以添加if判斷語句,這個if判斷稱為守衛(wèi)

 def main(args: Array[String]): Unit = {
//    守衛(wèi)
    var nums = 1 to 10
    for (i <- nums if i>5 ) println(i)
}

打印的值為: 

6
7
8
9
10

4、yield表達式 

在for循環(huán)體中,以yield表達式開始,這類循環(huán)能構(gòu)建出一個新的集合,我們把這類循環(huán)稱為推導(dǎo)式

def main(args: Array[String]): Unit = {

    // for推導(dǎo)式:for表達式中以yield開始,該for表達式會構(gòu)建出一個集合
    val v = for(i <- 1 to 5) yield i * 10
    //打印集合v的第一個元素
    println(v(0))
}

打印的值為

10

五、while循環(huán)

while(返回值為布爾類型的表達式){
    //表達式
}

六、方法

def methodName (參數(shù)名:參數(shù)類型, 參數(shù)名:參數(shù)類型) : [return type] = {
    // 方法體:一系列的代碼
}
  • 參數(shù)列表的參數(shù)類型不能省略

  • 返回值類型可以省略,由scala編譯器自動推斷

  • 返回值可以不寫return,默認就是{}塊表達式的值  

  • 注意:

  • 如果定義遞歸方法,必須指定返回值類型

  • 示例:(方法三)

  • 定義遞歸方法(求階乘)

  • 10 * 9 * 8 * 7 * 6 * ... * 1

  //方法一
  def yy(i: Int = 10, u: Int = 8): Int = {
    return i + u;
  }

  //方法二
  def tt(i: Int) = i * i


  /**
   * 遞歸必須添加返回值參數(shù)
   *
   * @param x
   * @return
   */
  //方法三
  def m1(x: Int): Int = {
    if (x == 1) 1
    else x * m1(x - 1)
  }

  /**
   * 參數(shù)值加*,可以傳遞多個參數(shù)
   *
   * @param num
   * @return
   */
  //    方法四
  def add(num: Int*) = num.sum

  def main(args: Array[String]): Unit = {
    
        println(yy(1))
        println(tt(8))
        println(m1(10))
        println(add(1,2,3))
}

打印的值為

9
64
3628800
6

6、函數(shù)

  • 函數(shù)在scala中屬于頭等公民

    • 數(shù)字能做的事,函數(shù)也可以

    • 數(shù)字可以作為參數(shù),所以函數(shù)也可以作為其他方法或函數(shù)的參數(shù)

    • 數(shù)字可以作為返回值,所以函數(shù)也可以作為其他方法或函數(shù)的返回值

    • 數(shù)字可以賦值給一個變量,所以函數(shù)也可以賦值給一個變量

  • scala支持函數(shù)式編程,將來編寫Spark/Flink程序中,會大量使用到函數(shù)

  • 語法

val 函數(shù)變量名 = (參數(shù)名:參數(shù)類型, 參數(shù)名:參數(shù)類型....) => 函數(shù)體

注意

  • 函數(shù)是一個對象(變量)

  • 類似于方法,函數(shù)也有輸入?yún)?shù)和返回值

  • 函數(shù)定義不需要使用def定義

  • 無需指定返回值類型

 val add2 = (x: Int, y: Int) => x * y
  def main(args: Array[String]): Unit = {
        println(add2(2,4))
}

 打印的值為

8

方法和函數(shù)的區(qū)別

  • 方法是隸屬于類或者對象的,在運行時,它是加載到JVM的==方法區(qū)==中

  • 可以將函數(shù)對象賦值給一個變量,在運行時,它是加載到JVM的==堆內(nèi)存==中

  • 函數(shù)是一個對象,繼承自FunctionN,函數(shù)對象有apply,curried,toString,tupled這些方法,而方法則沒有

方法轉(zhuǎn)換為函數(shù)

  • 有時候需要將方法轉(zhuǎn)換為函數(shù),作為變量傳遞,就需要將方法轉(zhuǎn)換為函數(shù)

  • 使用 即可將方法轉(zhuǎn)換為函數(shù)(記得空格)

  •  //方法三
      def m1(x: Int): Int = {
        if (x == 1) 1
        else x * m1(x - 1)
      }
      val hanshu=m1 _;
      def main(args: Array[String]): Unit = {
    
        println(hanshu(10))
      }

    打印的結(jié)果 

  • 3628800

    7、數(shù)組

  • scala中數(shù)組的概念是和Java類似,可以用數(shù)組來存放同類型的一組數(shù)據(jù)

  • scala中,有兩種數(shù)組,一種是定長數(shù)組,另一種是變長數(shù)組 

(1)、定長數(shù)組

  • 定長數(shù)組指的是數(shù)組的長度不允許改變

  • 數(shù)組的元素可以改變

demo如下 

def main(args: Array[String]): Unit = {
    val a = new Array[Int](10)
    println(a)
    a(0)=98
    println(a(0))
    println(a(1))
    println(a.length)
  }

 打印的值為:

[I@ea4a92b
98
0
10

(2)、變長數(shù)組

  • 變長數(shù)組指的是數(shù)組的長度是可變的,可以往數(shù)組中添加、刪除元素

  • 創(chuàng)建變長數(shù)組,需要提前導(dǎo)入ArrayBuffer類

import scala.collection.mutable.ArrayBuffer

語法

  • 創(chuàng)建空的ArrayBuffer變長數(shù)組

  • val/var a = ArrayBuffer[元素類型]()

    創(chuàng)建帶有初始元素的ArrayBuffer

  • val/var a = ArrayBuffer(元素1,元素2,元素3....)

    變長數(shù)組的增刪改操作

  • 使用+=添加元素

  • 使用-=刪除元素

  • 使用++=追加一個數(shù)組到變長數(shù)組

demo如下 

  def main(args: Array[String]): Unit = {
    //變長數(shù)組
    val a = ArrayBuffer[String]();
    a+=("test")
    a+=("張三")
    a++=Array("妞兒","所以算是")
    println(a(3))
    println(a.size)
  }
}

打印的值為

所以算是
4

(3)、遍歷數(shù)組

可以使用以下兩種方式來遍歷數(shù)組:

  • 使用==for表達式== 直接遍歷數(shù)組中的元素

  • 使用 ==索引== 獲得數(shù)組中的元素

for(i <- a) println(i)
/0 to n    ——包含0,也包含n
for(i <- 0 to a.length -1 ) println(a(i))
//0 until n ——生成一系列的數(shù)字,包含0,不包含n
for(i <- 0 until a.length) println(a(i))

(4)、數(shù)組常用操作

scala中的數(shù)組封裝了豐富的計算操作,將來在對數(shù)據(jù)處理的時候,不需要我們自己再重新實現(xiàn)。

  • 求和——sum方法

  • 求最大值——max方法

  • 求最小值——min方法

  • 排序——sorted方法

 def main(args: Array[String]): Unit = {

    val array = Array(1,3,4,2,5)
    println("求和:"+array.sum)
    println("最大值:"+array.max)
    println("最小值:"+array.min)
    println("排序(獲取一個新數(shù)組,并翻轉(zhuǎn)):"+array.sorted.reverse(0))

  }

 打印如下

求和:15
最大值:5
最小值:1
排序(獲取一個新數(shù)組,并翻轉(zhuǎn)):5

8、元組 

元組可以用來包含一組不同類型的值。例如:姓名,年齡,性別,出生年月。

元組的元素是不可變的。

1、定義元組

使用括號來定義元組

val/var 元組變量名稱 = (元素1, 元素2, 元素3....)

使用箭頭來定義元素(元組只有兩個元素 )

val/var 元組 = 元素1 -> 元素2

2、訪問元組

  • 使用 _1、_2、_3....來訪問元組中的元素

  • 元組的index從1開始,_1表示訪問第一個元素,依次類

  def main(args: Array[String]): Unit = {
    val a = (1, "張三", 20, "北京市")
    val b = 1 -> 2
    println(a._1)
    println(a._4)
    println(b._1)
  }

 打印的值為

1
北京市
1

9、映射Map

  • Map可以稱之為映射。它是由鍵值對組成的集合。scala當中的Map集合與java當中的Map類似,也是key,value對形式的。

  • 在scala中,Map也分為不可變Map和可變 Map。

(1)、不可變map

  定義語法

val/var map = Map(鍵->值, 鍵->值, 鍵->值...)    // 推薦這種寫法,可讀性更好 
val/var map = Map((鍵, 值), (鍵, 值), (鍵, 值), (鍵, 值)...)
def main(args: Array[String]): Unit = {
    val map1 = Map("zhangsan"->30, "lisi"->40)
    val map2 = Map(("zhangsan", 30), ("lisi", 30))
    println(map1("lisi"))
    println(map2("zhangsan"))
  }

打印的值為

40
30

(2)、可變Map

1、導(dǎo)包

import scala.collection.mutable.Map
  def main(args: Array[String]): Unit = {

    val map3 = Map("zhangsan" -> 30, "lisi" -> 40)
    //修改一個
    map3("zhangsan") = 50
    println("修改的" + map3)
    //添加一個
    map3 += ("yy" -> 22)
    println("添加的" + map3)
    //刪去一個
    map3 -= "yy"
    println("刪除的" + map3)
    //拿取到map所有key
    println("拿取到map所有key:" + map3.keys)
    println("拿取到map所有key:" + map3.keySet)
    //獲取所有的value
    println("獲取所有的value:" + map3.values)
  }

打印的值為: 

修改的Map(lisi -> 40, zhangsan -> 50)
添加的Map(yy -> 22, lisi -> 40, zhangsan -> 50)
刪除的Map(lisi -> 40, zhangsan -> 50)
拿取到map所有key:Set(lisi, zhangsan)
拿取到map所有key:Set(lisi, zhangsan)
獲取所有的value:HashMap(40, 50)

(3)、遍歷Map

     val map3 = Map("zhangsan" -> 30, "lisi" -> 40)
    //方法一。通過遍歷key拿取到值
    for (i <- map3.keys) println(i + "->" + map3(i))
    //方法二,通過元組的方法拿取到值
    for (i <- map3) println(i._1 + "->" + i._2)
    //方法三
    for((k, v) <- map3) println(k + " -> " + v)
lisi->40
zhangsan->30
lisi->40
zhangsan->30
lisi -> 40
zhangsan -> 30

10、Set集合

  • Set是代表沒有重復(fù)元素的集合。

  • Set具備以下性質(zhì):

    • 1、元素不重復(fù)

    • 2、不保證插入順序

  • scala中的set集合也分為兩種,一種是不可變集合,另一種是可變集合。

不可變set集合 

//創(chuàng)建一個空的不可變集
val/var 變量名 = Set[類型]()

//給定元素來創(chuàng)建一個不可變集
val/var 變量名 = Set[類型](元素1, 元素2, 元素3...)
 def main(args: Array[String]): Unit = {
    val a = Set(1, 1, 2, 3, 4, 5)
    println("a的長度大小"+a.size)
    for(i<-a)println(i)
    println("添加一個元素的新set:",a + 6)
    println("刪除一個元素的新set:",a -1)
    println("刪除多個元素的新set:",a -- Set(2,3) )
    println("添加多個元素的新set:",a ++ Set(6,7,8)  )
    println("多個Set集合交集的新set:",a & Set(3,4,5,6))
    println(a)
  }

打印如下:

a的長度大小5
5
1
2
3
4
(添加一個元素的新set:,Set(5, 1, 6, 2, 3, 4))
(刪除一個元素的新set:,Set(5, 2, 3, 4))
(刪除多個元素的新set:,Set(5, 1, 4))
(添加多個元素的新set:,Set(5, 1, 6, 2, 7, 3, 8, 4))
(多個Set集合交集的新set:,Set(5, 3, 4))
Set(5, 1, 2, 3, 4)

注意:這里對不可變的set集合進行添加刪除等操作,對于該集合來說是沒有發(fā)生任何變化,這里是生成了新的集合,新的集合相比于原來的集合來說發(fā)生了變化

可變Set集合

要使用可變集,必須要手動導(dǎo)入:

import scala.collection.mutable.Set

11、列表 List

  • List是scala中最重要的、也是最常用的數(shù)據(jù)結(jié)構(gòu)。

  • List具備以下性質(zhì):

    • 1、可以保存重復(fù)的值

    • 2、有先后順序

  • 在scala中,也有兩種列表,一種是不可變列表、另一種是可變列表

  • 不可變列表就是列表的元素、長度都是不可變的

  • 語法

    不可變列表

  • 使用 List(元素1, 元素2, 元素3, ...) 來創(chuàng)建一個不可變列表,語法格式
val/var 變量名 = List(元素1, 元素2, 元素3...)

//使用 Nil 創(chuàng)建一個不可變的空列表
val/var 變量名 = Nil

//使用 :: 方法創(chuàng)建一個不可變列表
val/var 變量名 = 元素1 :: 元素2 :: Nil
 def main(args: Array[String]): Unit = {
    val list1 = List(1, 2, 3, 4)
    val list2 = Nil
    val list3= 1::2::3::Nil
    println(list1(0))
    println(list3)
  }

 打印的值為

1
List(1, 2, 3)

可變列表

1、使用ListBuffer元素類型 創(chuàng)建空的可變列表,語法結(jié)構(gòu)

val/var 變量名 = ListBuffer[Int]()

2、使用ListBuffer(元素1, 元素2, 元素3...)創(chuàng)建可變列表,語法結(jié)構(gòu)

val/var 變量名 = ListBuffer(元素1,元素2,元素3...)
    val a = ListBuffer[Int]()
    val b = ListBuffer(1, 2, 3, 4)
    println(b(0))
    println("list數(shù)組首部:", b.head)
    println("獲取除了第一個元素外其他元素組成的列表", b.tail)
    b += 5
    println("添加應(yīng)元素", b)
    b ++= List(6, 7)
    println("添加一個不可變列表", b)
    b ++= ListBuffer(8, 9)
    println("添加一個可變列表", b)
    b -= 9
    println("刪除單個元素", b)
    b --= List(7,8)
    println("刪除一個不可變的列表存在的元素", b)
    b --= ListBuffer(5,6)
    println("刪除一個可變的列表存在的元素", b)
    println("toList根據(jù)可變的列表生成一個不可變列表",b.toList)
    println("toList根據(jù)可變的列表生成一個不可變列表,原列表不變",b)

    println("toArray根據(jù)可變的列表生成一個新的不可變數(shù)組",b.toArray)
    println("toArray根據(jù)可變的列表生成一個新的不可變數(shù)組,原列表不變",b)

打印如下

1
(list數(shù)組首部:,1)
(獲取除了第一個元素外其他元素組成的列表,ListBuffer(2, 3, 4))
(添加應(yīng)元素,ListBuffer(1, 2, 3, 4, 5))
(添加一個不可變列表,ListBuffer(1, 2, 3, 4, 5, 6, 7))
(添加一個可變列表,ListBuffer(1, 2, 3, 4, 5, 6, 7, 8, 9))
(刪除單個元素,ListBuffer(1, 2, 3, 4, 5, 6, 7, 8))
(刪除一個不可變的列表存在的元素,ListBuffer(1, 2, 3, 4, 5, 6))
(刪除一個可變的列表存在的元素,ListBuffer(1, 2, 3, 4))
(toList根據(jù)可變的列表生成一個不可變列表,List(1, 2, 3, 4))
(toList根據(jù)可變的列表生成一個不可變列表,原列表不變,ListBuffer(1, 2, 3, 4))
(toArray根據(jù)可變的列表生成一個新的不可變數(shù)組,[I@3567135c)
(toArray根據(jù)可變的列表生成一個新的不可變數(shù)組,原列表不變,ListBuffer(1, 2, 3, 4))

12、函數(shù)式編程

  • 我們將來使用Spark/Flink的大量業(yè)務(wù)代碼都會使用到函數(shù)式編程。

  • 下面的這些操作是學(xué)習(xí)的重點,先來感受下如何進行函數(shù)式編程以及它的強大

(1)、遍歷 - foreach

方法描述

foreach(f: (A) ? Unit): Unit
foreachAPI說明
參數(shù)f: (A) ⇒ Unit接收一個函數(shù)對象作為參數(shù) 函數(shù)的輸入?yún)?shù)為集合的元素 返回值為空
返回值Unit
  def main(args: Array[String]): Unit = {
    val list = List(1, 2, 3, 4)
    //定義一個匿名函數(shù)傳入到foreach方法中
    list.foreach((u: Int) => println(u))
    //匿名函數(shù)的輸入?yún)?shù)類型可以省略,由編譯器自動推斷
    list.foreach(u => println(u))
    //  當函數(shù)參數(shù),只在函數(shù)體中出現(xiàn)一次,而且函數(shù)體沒有嵌套調(diào)用時,可以使用下劃線來簡化函數(shù)定義
    list.foreach(println(_))
    //最簡單直接
    list.foreach(println)
  }

(2)、映射 - map

  • 集合的映射操作是將來在編寫Spark/Flink用得最多的操作,是我們必須要掌握。

  • 方法描述

def map[B](f: (A) ? B): TraversableOnce[B]
  • 方法說明

ap方法API說明
泛型[B]指定map方法最終返回的集合泛型
參數(shù)f: (A) ⇒ B傳入一個函數(shù)對象作為參數(shù) 該函數(shù)接收一個類型A(要轉(zhuǎn)換的集合的元素類型) 返回值為類型B
返回值TraversableOnce[B]B類型的集合

    val list = List(1, 2, 3, 4)
    //定義一個匿名函數(shù)
    val b=list.map((i:Int)=>i*10)
    println(b)
    //省略匿名函數(shù)參數(shù)類型
    val c=list.map(i=>i*10)
    println(c)
    //最簡單用下劃線的方法
    val d=  list.map(_ * 10)
    println(d)

打印結(jié)果如下

List(10, 20, 30, 40)
List(10, 20, 30, 40)
List(10, 20, 30, 40)

(3)、扁平化映射 - flatmap

  • 映射扁平化也是將來用得非常多的操作,也是必須要掌握的。

  • 方法描述

def flatMap[B](f: (A) ? GenTraversableOnce[B]): TraversableOnce[B]

方法說明  

flatmap方法API說明
泛型[B]最終要轉(zhuǎn)換的集合元素類型
參數(shù)f: (A) ⇒ GenTraversableOnce[B]傳入一個函數(shù)對象作為參數(shù) 函數(shù)的參數(shù)是集合的元素 函數(shù)的返回值是一個集合
返回值TraversableOnce[B]B類型的集合

def main(args: Array[String]): Unit = {
    val list = List("hadoop hive spark flink", "hbase spark")
    val tt = list.flatMap(x => x.split(" "));
    println(tt)
    //簡寫
    val t2 = list.flatMap(_.split(" "))
    println(t2)
    //flatMap該方法其本質(zhì)是先進行了map 然后又調(diào)用了flatten
    val t3 = list.map(_.split(" ")).flatten
    println(t3)
  }

打印結(jié)果如下

List(hadoop, hive, spark, flink, hbase, spark)
List(hadoop, hive, spark, flink, hbase, spark)
List(hadoop, hive, spark, flink, hbase, spark)

(4)、過濾 - filter

  • 過濾符合一定條件的元素

  • 方法描述

def filter(p: (A) ? Boolean): TraversableOnce[A]

 方法說明

filter方法API說明
參數(shù)p: (A) ⇒ Boolean傳入一個函數(shù)對象作為參數(shù) 函數(shù)的參數(shù)是集合中的元素 此函數(shù)返回布爾類型,滿足條件返回true, 不滿足返回false
返回值TraversableOnce[A]列表

 demo展示

def main(args: Array[String]): Unit = {
    val list = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    ///過濾出集合中大于5的元素
    val tt=list.filter(x=>x>5)
    println(tt)
    //把集合中大于5的元素取出來乘以10生成一個新的list集合
    val t3=list.filter(x=>x>5).map(u=>u*10)
    println(t3)
  }

 打印的值為:

List(6, 7, 8, 9, 10)
List(60, 70, 80, 90, 100)

(5) 、分組 - groupBy

  • 首先集合的元素得是kv對的;

  • 如果要將數(shù)據(jù)按照某值分組來進行統(tǒng)計分析,就需要使用到分組方法

  • groupBy表示按照函數(shù)將列表分成不同的組

  • 方法描述

def groupBy[K](f: (A) ⇒ K): Map[K, List[A]] 

  • 方法說明

groupBy方法API說明
泛型[K]分組字段的類型
參數(shù)f: (A) ⇒ K傳入一個函數(shù)對象 接收集合元素類型的參數(shù) 返回一個K類型的key,這個key會用來進行分組,相同的key放在一組中
返回值Map[K, List[A]]返回一個映射,K為分組字段,List為這個分組字段對應(yīng)的一組數(shù)據(jù)

scala> val a = List("張三"->"男", "李四"->"女", "王五"->"男")
a: List[(String, String)] = List((張三,男), (李四,女), (王五,男))

// 按照性別分組
scala> a.groupBy(_._2)
res0: scala.collection.immutable.Map[String,List[(String, String)]] = Map(男 -> List((張三,男), (王五,男)),
女 -> List((李四,女)))

// 將分組后的映射轉(zhuǎn)換為性別/人數(shù)元組列表
scala> res0.map(x => x._1 -> x._2.size)
res3: scala.collection.immutable.Map[String,Int] = Map(男 -> 2, 女 -> 1)

//根據(jù)這個例子,思考下,作業(yè)中如何使用scala編程,實現(xiàn)詞頻統(tǒng)計?
 

//求每個省份有多少人?
val b = List("張三"->("男", "北京"), "李四"->("女", "河北"), "王五"->("男", "北京"))

scala> b.groupBy(_._2._2).map(x => (x._1, x._2.size))
res14: scala.collection.immutable.Map[String,Int] = Map(北京 -> 2, 河北 -> 1)

object yyy {
  def main(args: Array[String]): Unit = {
   val a = List("張三"->"男", "李四"->"女", "王五"->"男")
    println(a.groupBy(_._2))

    val list2 =List("a,b,c","y,c,a,e,a,c,a")
    var map=list2.flatMap(x=>x.split(",")).groupBy(x=>x).map(y=>(y._1,y._2.size));
    println(map)
    println("a的個數(shù)是:"+map("a"))
  }
}

打印的值為 

Map(男 -> List((張三,男), (王五,男)), 女 -> List((李四,女)))
Map(e -> 1, y -> 1, a -> 4, b -> 1, c -> 3)
a的個數(shù)是:4

(6)、排序 - sort

在scala集合中,可以使用以下幾種方式來進行排序

  • sorted默認排序

  • sortBy指定字段排序

  • sortWith自定義排序

sorted默認排序

 def main(args: Array[String]): Unit = {
    val list = List(5, 1, 2, 4, 3)
    println(list.sorted)
  }
List(1, 2, 3, 4, 5)

sortBy指定字段排序

def sortBy[B](f: (A) ? B): List[A]
sortBy方法API說明
泛型[B]按照什么類型來進行排序
參數(shù)f: (A) ⇒ B傳入函數(shù)對象作為參數(shù) 函數(shù)接收一個集合類型的元素為參數(shù) 返回B類型的元素進行排序
返回值List[A]返回排序后的列表

結(jié)果如下: 

 val list2 = List("1 hadoop", "2 spark", "3 flink")
    println(list2.sortBy(x=>x.split(" ")(0)))

打印的結(jié)果如下: 

List(1 hadoop, 2 spark, 3 flink)

sortWith自定義排序  

  • 自定義排序,根據(jù)一個函數(shù)來進行自定義排序

  • 方法描述

def sortWith(lt: (A, A) ? Boolean): List[A]
sortWith方法API說明
參數(shù)lt: (A, A) ⇒ Boolean傳入一個比較大小的函數(shù)對象作為參數(shù) 函數(shù)接收兩個集合類型的元素作為參數(shù) 返回兩個元素大小,小于返回true,大于返回false
返回值List[A]返回排序后的列表
   val list3 = List(2, 3, 1, 6, 4, 5)
    //降序
    var tt = list3.sortWith((x, y) => x > y)
    println(tt)
    //升序
    var tt2 = list3.sortWith((x, y) => x < y)
    println(tt2)
    //簡寫
    var tt3 =list3.sortWith(_ > _)
    println(tt3)

 打印的結(jié)果:

List(6, 5, 4, 3, 2, 1)
List(1, 2, 3, 4, 5, 6)
List(6, 5, 4, 3, 2, 1)

(5)、聚合 - reduce

  • reduce表示將列表,傳入一個函數(shù)進行聚合計算

  • 方法描述

def reduce[A1 >: A](op: (A1, A1) ? A1): A1
reduce方法API說明
泛型[A1 >: A](下界)A1必須是集合元素類型的子類
參數(shù)op: (A1, A1) ⇒ A1傳入函數(shù)對象,用來不斷進行聚合操作 第一個A1類型參數(shù)為:當前聚合后的變量 第二個A1類型參數(shù)為:當前要進行聚合的元素
返回值A1列表最終聚合為一個元素
def main(args: Array[String]): Unit = {
    val a = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    //基礎(chǔ)的寫法
    var b = a.reduce((x, y) => x + y)
    println("基礎(chǔ)的寫法"+b)
    //簡單的寫法
    var c = a.reduce(_ + _)
    println("簡單的寫法"+c)
    //從左往右計算
    var d = a.reduceLeft(_ + _)
    println("從左往右計算"+d)
     //從右往左計算
    var f = a.reduceRight(_ + _)
    println("從右往左計算"+f)
  }
基礎(chǔ)的寫法55
簡單的寫法55
從左往右計算55
從右往左計算55

(6)、折疊 - fold

fold與reduce很像,但是多了一個指定初始值參數(shù)

def fold[A1 >: A](z: A1)(op: (A1, A1) ? A1): A1
reduce方法API說明
泛型[A1 >: A](下界)A1必須是集合元素類型的子類
參數(shù)1z: A1初始值
參數(shù)2op: (A1, A1) ⇒ A1傳入函數(shù)對象,用來不斷進行折疊操作 第一個A1類型參數(shù)為:當前折疊后的變量 第二個A1類型參數(shù)為:當前要進行折疊的元素
返回值A1列表最終折疊為一個元素
def main(args: Array[String]): Unit = {
    val a = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    var e = a.fold(0)(_ + _)
    println("簡單折疊:",e)
    var g = a.fold(5)(_ + _)
    println("給定一個初始值,,折疊求和:"+g)
    var h=  a.foldLeft(10)(_ + _)
    println("從左往右折疊:",h)

  }
(簡單折疊:,55)
給定一個初始值,,折疊求和:60
(從左往右折疊:,65)

13、高階函數(shù)

使用函數(shù)值作為參數(shù),或者返回值為函數(shù)值的“函數(shù)”和“方法”,均稱之為“高階函數(shù)”。

1、函數(shù)值作為參數(shù)

  def main(args: Array[String]): Unit = {
    //定義一個數(shù)組
    val array = Array(1, 2, 3, 4, 5)
    //定義一個函數(shù)
    val func = (x: Int) => x * 10
    //函數(shù)作為參數(shù)傳遞到方法中
    val tt=  array.map(func)
    println("通過map轉(zhuǎn)化的新數(shù)組:",tt)
    println("通過map轉(zhuǎn)化的新數(shù)組最大:",tt.max)
  }

打印的值為:

(通過map轉(zhuǎn)化的新數(shù)組:,[I@17550481)
(通過map轉(zhuǎn)化的新數(shù)組:,50)

2、匿名函數(shù)

一個沒有名稱的函數(shù)----匿名函數(shù)

 def main(args: Array[String]): Unit = {
    val array = Array(1, 2, 3, 4, 5)
    var a = array.map(x => x * 10)
    println(a.max)
  }

打印的值為: 

50

3、柯里化

方法可以定義多個參數(shù)列表,當使用較少的參數(shù)列表調(diào)用多參數(shù)列表的方法時,會產(chǎn)生一個新的函數(shù),該函數(shù)接收剩余的參數(shù)列表作為其參數(shù)。這被稱為柯里化。

 def main(args: Array[String]): Unit = {
    def getAddress(a: String): (String, String) => String = {
      (b: String,c: String) => a + "-" + b + "-" + c
    }
    var b=getAddress("china");
    var c=b("beijing","tianAnMen")
    println(c)
  }
china-beijing-tianAnMen

 4、閉包

函數(shù)里面引用外面類成員變量叫作閉包

  def main(args: Array[String]): Unit = {
    var factor = 1
    val f1 = (x: Int) => x * factor
    println(f1(8))
    factor=2
    println(f1(8))
  }
8
16

//定義的函數(shù)f1,它的返回值是依賴于不在函數(shù)作用域的一個變量
//后期必須要要獲取到這個變量才能執(zhí)行
//spark和flink程序的開發(fā)中大量的使用到函數(shù),函數(shù)的返回值依賴的變量可能都需要進行大量的網(wǎng)絡(luò)傳輸獲取得到。這里就需要這些變量實現(xiàn)序列化進行網(wǎng)絡(luò)傳輸。

 def main(args: Array[String]): Unit = {
   
    def multiply(x: Double) = (y: Double) => x * y

    //先進行科爾化
    val doubleFunc = multiply(2)
    val tripleFunc = multiply(3)
    //    再對閉包進行計算
    var u = doubleFunc(10)
    var u2 = tripleFunc(10)
    println(u)
    println(u2)
  }
20.0
30.0

14、scala面向?qū)ο缶幊讨?/h2>

1、類的定義

scala是支持面向?qū)ο蟮模灿蓄惡蛯ο蟮母拍睢?/p>

  • 定義一個Customer類,并添加成員變量/成員方法

  • 添加一個main方法,并創(chuàng)建Customer類的對象,并給對象賦值,打印對象中的成員,調(diào)用成員方法

與java相比,他無需get set方法,就可以對變量進行賦值封裝操作 

import java.util.Date

class Customer {
  var name: String = _
  var sex: String = _
  val registerDate: Date = new Date

  def sayHi(msg: String) = {
    println(msg)
  }
}

object Main {
  def main(args: Array[String]): Unit = {
    val customer = new Customer
    //給對象的成員變量賦值
    customer.name = "張三"
    customer.sex = "男"

    println(s"姓名: ${customer.name}, 性別:${customer.sex}, 注冊時間: ${customer.registerDate}")
    //對象調(diào)用方法
    customer.sayHi("你好!")
  }
}

 打印的結(jié)果為:

姓名: 張三, 性別:男, 注冊時間: Fri Apr 22 16:23:21 CST 2022
你好!

(1). var name:String = _,  _表示使用默認值進行初始化
   例如:String類型默認值是null,Int類型默認值是0,Boolean類型默認值是false...
(2). val變量不能使用_來進行初始化,因為val是不可變的,所以必須手動指定一個默認值
(3). main方法必須要放在一個scala的object(單例對象)中才能執(zhí)行

2、類的構(gòu)造器

主構(gòu)造器

  • 主構(gòu)造器是指在類名的后面跟上一系列參數(shù),例如

class 類名(var/val 參數(shù)名: 類型 = 默認值, var/val 參數(shù)名: 類型 = 默認值){
    // 構(gòu)造代碼塊
}

輔助構(gòu)造器

  • 在類中使用this來定義,例如

    def this(參數(shù)名: 類型, 參數(shù)名: 類型) {
        ...
    }
    package com.testScala.D_lei
    
    class Student(val name: String, val age: Int) {
    
      val address: String = "beijing"
    
      // 定義一個參數(shù)的輔助構(gòu)造器
      def this(name: String) {
        // 輔助構(gòu)造器的第一行必須調(diào)用主構(gòu)造器或其他輔助構(gòu)造器或者super父類的構(gòu)造器
        this(name, 20)
      }
    
      def this(age: Int) {
        this("某某某", age)
      }
    
    }
    
    object test {
      def main(args: Array[String]): Unit = {
        val tt = new Student("張三");
        println(s"name等于:${tt.name},address:${tt.address},age:${tt.age}")
      }
    }

    15、scala面向?qū)ο缶幊讨畬ο?/h2>

1、scala中的object

  • scala中是沒有Java中的靜態(tài)成員的。如果將來我們需要用到static變量、static方法,就要用到scala中的單例對象object

  • 定義object

    • 定義單例對象和定義類很像,就是把class換成object

  • 演示

    • 定義一個工具類,用來格式化日期時間

object DateUtils {
//  / 在object中定義的成員變量,相當于Java中定義一個靜態(tài)變量
  // 定義一個SimpleDateFormat日期時間格式化對象
  val simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm")

  // 構(gòu)造代碼
  println("構(gòu)造代碼")

  // 相當于Java中定義一個靜態(tài)方法
  def format(date: Date) = simpleDateFormat.format(date)

  // main是一個靜態(tài)方法,所以必須要寫在object中
  def main(args: Array[String]): Unit = {

    println { DateUtils.format(new Date()) };
  }
}

 (1). 使用object 單例對象名定義一個單例對象,可以用object作為工具類或者存放常量
(2). 在單例對象中定義的變量,類似于Java中的static成員變量
(3). 在單例對象中定義的方法,類似于Java中的static方法
(4). object單例對象的構(gòu)造代碼可以直接寫在花括號中
(5). 調(diào)用單例對象的方法,直接使用單例對象名.方法名,訪問單例對象的成員變量也是使用單例對象名.變量名
(6). 單例對象只能有一個無參的主構(gòu)造器,不能添加其他參數(shù)

2、scala中的伴生對象

  • 在==同一個scala文件,有一個class和object具有同樣的名字==,那么就稱這個object是class的伴生對象,class是object的伴生類;

  • 伴生類和伴生對象的最大特點是,可以相互訪問;

package com.testScala.E_duixiang

class Dog {
  val id = 1
  private var name = "kkb"
  def printName(): Unit = {
    //在Dog類中可以訪問伴生對象Dog的私有屬性
    println(Dog.CONSTANT + name )
  }
}

object Dog{
  //伴生對象中的私有屬性
  private val CONSTANT = "汪汪汪 : "
  def main(args: Array[String]) {
    val dog = new Dog
    //訪問私有的字段name
    dog.name = "123"
    dog.printName()
  }
}
汪汪汪 : 123

(1). 伴生類和伴生對象的名字必須是一樣的
(2). 伴生類和伴生對象需要在一個scala源文件中
(3). 伴生類和伴生對象可以互相訪問private的屬性

3、scala中object的apply方法

  • ==實現(xiàn)伴生對象Array的apply方法==

  • 伴生對象的apply方法用來快速地創(chuàng)建一個伴生類的對象。

package com.testScala.E_duixiang

class Person(var name: String, var age: Int) {

  override def toString = s"Person($name, $age)"
}

object Person {
  // 實現(xiàn)apply方法
  // 返回的是伴生類的對象
  def apply(name: String, age: Int): Person = new Person(name, age)

  // apply方法支持重載
  def apply(name: String): Person = new Person(name, 20)

  def apply(age: Int): Person = new Person("某某某", age)

  def apply(): Person = new Person("某某某", 20)
}

object Main2 {
  def main(args: Array[String]): Unit = {
    val p1 = Person("張三", 20)
    val p2 = Person("李四")
    val p3 = Person(100)
    val p4 = Person()

    println(p1)
    println(p2)
    println(p3)
    println(p4)
  }
}
Person(張三, 20)
Person(李四, 20)
Person(某某某, 100)
Person(某某某, 20)

 (1). 當遇到類名(參數(shù)1, 參數(shù)2...)會自動調(diào)用伴生對象相應(yīng)的apply方法,在apply方法中來創(chuàng)建對象
(2). 定義apply時,如果參數(shù)列表是空,也不能省略括號(),否則引用的是伴生對象

4、scala中object的main方法

  • scala和Java一樣,如果要運行一個程序,必須有一個main方法。

  • 而在Java中main方法是靜態(tài)的,而在scala中沒有靜態(tài)方法。

object Main1{
  def main(args: Array[String]) = {
    println("hello, scala")
  }
}

16、scala面向?qū)ο缶幊讨^承

1、繼承extends

  • scala和Java一樣,使用extends關(guān)鍵字來實現(xiàn)繼承??梢栽谧宇愔卸x父類中沒有的字段和方法,或者重寫父類的方法。

  • package com.testScala.F_jicheng
    
    class Person1 {
      var name = "jianghaojie"
    
      def getName = this.name
    }
    
    class Student extends Person1
    
    object main1 {
      def main(args: Array[String]): Unit = {
        val p1 = new Person1()
        val p2 = new Student()
        p2.name = "蔣皓潔"
        println(p1.getName)
        println(p2.getName)
      }
    }
    jianghaojie
    蔣皓潔

    2、override和super

     ???如果子類要覆蓋父類中的一個非抽象方法,必須要使用override關(guān)鍵字

  • 可以使用override關(guān)鍵字來重寫一個val字段

  • 可以使用super關(guān)鍵字來訪問父類的成員

  • ==示例1:class繼承class==

class Person3 {
  val name = "super"

  def getName = name
}

class Student3 extends Person3 {
  // 重寫val字段
  override val name: String = "child"

  // 重寫getName方法
  override def getName: String = "hello, " + super.getName
}

object Main3 {
  def main(args: Array[String]): Unit = {
    val p = new Student3();
    println(p.name)
    println(p.getName)
  }
}
child
hello, child

3、isInstanceOf和asInstanceOf

  • 我們經(jīng)常要在代碼中進行類型的判斷和類型的轉(zhuǎn)換。在Java中,我們可以使用instanceof關(guān)鍵字、以及(類型)object來實現(xiàn),在scala中如何實現(xiàn)呢?

  • scala中對象提供==isInstanceOf==和==asInstanceOf==方法。

    • isInstanceOf判斷對象是否為指定類的對象

    • asInstanceOf將對象轉(zhuǎn)換為指定類型

JavaScala
判斷對象是否是C類型obj instanceof Cobj.isInstanceof[C]
將對象強轉(zhuǎn)成C類型(C ) objobj.asInstanceof[C]
獲取類型為T的class對象C.classclassOf[C]
  • ==示例==

class Person4
class Student4 extends Person4

object Main4 {
  def main(args: Array[String]): Unit = {
    val s1: Person4 = new Student4

    // 判斷s1是否為Student4類型
    if(s1.isInstanceOf[Student4]) {
      // 將s1轉(zhuǎn)換為Student3類型
      val s2 =  s1.asInstanceOf[Student4]
      println(s2)
    }
  }
}
com.testScala.F_jicheng.Student4@ea4a92b

4、getClass和classOf

isInstanceOf 只能判斷出對象是否為指定類以及其子類的對象,而不能精確的判斷出,對象就是指定類的對象。如果要求精確地判斷出對象就是指定類的對象,那么就只能使用 getClass 和 classOf 。

  • 對象.getClass可以精確獲取對象的類型

  • classOf[x]可以精確獲取類型

  • 使用==操作符就可以直接比較

class Person5
class Student5 extends Person5

object Student5{
  def main(args: Array[String]) {
    val p: Person5 = new Student5
    //判斷p是否為Person5類的實例
    println(p.isInstanceOf[Person5])//true

    //判斷p的類型是否為Person5類
    println(p.getClass == classOf[Person5])//false

    //判斷p的類型是否為Student5類
    println(p.getClass == classOf[Student5])//true
  }
}

5、訪問修飾符

java中的訪問控制,同樣適用于scala,可以在成員前面添加private/protected關(guān)鍵字來控制成員的可見性。但在scala中,==沒有public關(guān)鍵字,任何沒有被標為private或protected的成員都是公共的==。
 

==private[this]修飾符==

  • 被修飾的成員只能在當前類中被訪問?;蛘呖梢岳斫鉃椋?code>只能通過this.來訪問(在當前類中訪問成員會自動添加this.)

package com.testScala.F_jicheng
class Person6 {
  // 只有在當前對象中能夠訪問
  private[this] var name = "super"

  def getName = this.name	// 正確!

  def sayHelloTo(p: Person6) = {
    println("hello" + p.name)     // 報錯!無法訪問
  }
}

object Person6 {
  def showName(p: Person6) = println(p.name)  // 報錯!無法訪問
}

protected[this]修飾符==

  • ==被修飾的成員只能在當前類和當前類的子類中被訪問==。也可以理解為:當前類通過this.訪問或者子類通過this.訪問

  • 示例

package com.testScala.F_jicheng

class Person7 {
  // 只有在當前類以及繼承該類的當前對象中能夠訪問
  protected[this] var name = "super"

  def getName = {
    // 正確!
    this.name
  }

  def sayHelloTo1(p: Person7) = {
    // 編譯錯誤!無法訪問
//    println(p.name)
  }
}

object Person7 {
  def sayHelloTo3(p: Person7) = {
    // 編譯錯誤!無法訪問
//    println(p.name)
  }
}

class Student7 extends Person7 {
  def showName = {
    // 正確!
    println(name)
  }

  def sayHelloTo2(p: Person7) = {
    // 編譯錯誤!無法訪問
//    println(p.name)
  }
}
object  yy{
  def main(args: Array[String]): Unit = {
    var yu=    new Student7();
    yu.showName
//    println()
  }
}

6、調(diào)用父類的constructor

  • ==實例化子類對象,必須要調(diào)用父類的構(gòu)造器==,在scala中,只能在子類的主構(gòu)造器中調(diào)用父類的構(gòu)造器

  • 示例

 ??????

package com.testScala.F_jicheng

class Person8(var name: String){
  println("name:"+name)
}

// 直接在子類的類名后面調(diào)用父類構(gòu)造器
class Student8(name: String, var clazz: String) extends Person8(name)

object Main8 {
  def main(args: Array[String]): Unit = {
    val s1 = new Student8("張三", "三年二班")
    println(s"${s1.name} - ${s1.clazz}")
  }
}
name:張三
張三 - 三年二班

7、抽象類

  • 如果類的某個成員在當前類中的定義是不包含完整的,它就是一個抽象類

  • 不完整定義有兩種情況:

    • 1.方法沒有方法體

    • 2.變量沒有初始化

  • 沒有方法體的方法稱為抽象方法,沒有初始化的變量稱為抽象字段。定義抽象類和Java一樣,在類前面加上abstract關(guān)鍵字就可以了

package com.testScala.F_jicheng

abstract class Person9(val name: String) {
  //抽象方法
  def sayHello: String
  def sayBye: String
  //抽象字段
  val address: String
}
class Student9(name: String) extends Person9(name){
  //重寫抽象方法或字段,def前不必加override關(guān)鍵字
  def sayHello: String = "Hello," + name
  def sayBye: String ="Bye," + name
  //重寫抽象字段
   val address: String = "beijing "
}
object Main9{
  def main(args: Array[String]) {
    val s = new Student9("tom")
    println(s.sayHello)
    println(s.sayBye)
    println(s.address)
  }
}
Hello,tom
Bye,tom
beijing 

17、scala面向?qū)ο缶幊讨畉rait特質(zhì)

  • 特質(zhì)是scala中代碼復(fù)用的基礎(chǔ)單元

  • 它可以將方法和字段定義封裝起來,然后添加到類中

  • 與類繼承不一樣的是,類繼承要求每個類都只能繼承一個超類,而一個類可以添加任意數(shù)量的特質(zhì)。

  • 特質(zhì)的定義和抽象類的定義很像,但它是使用trait關(guān)鍵字

1、作為接口使用

  • 使用extends來繼承trait(scala不論是類還是特質(zhì),都是使用extends關(guān)鍵字)

  • 如果要繼承多個trait,則使用with關(guān)鍵字

==示例一:繼承單個trait==  

trait Logger1 {
  // 抽象方法
  def log(msg: String)
}

class ConsoleLogger1 extends Logger1 {
  override def log(msg: String): Unit = println(msg)
}

object LoggerTrait1 {
  def main(args: Array[String]): Unit = {
    val logger = new ConsoleLogger1
    logger.log("控制臺日志: 這是一條Log")
  }
}
控制臺日志: 這是一條Log

==示例二:繼承多個trait==

trait Logger2 {
  // 抽象方法
  def log(msg: String)
}

trait MessageSender {
  def send(msg: String)
}

class ConsoleLogger2 extends Logger2 with MessageSender {

  override def log(msg: String): Unit = println(msg)

  override def send(msg: String): Unit = println(s"發(fā)送消息:${msg}")
}

object LoggerTrait2 {
  def main(args: Array[String]): Unit = {
    val logger = new ConsoleLogger2
    logger.log("控制臺日志: 這是一條Log")
    logger.send("你好!")
  }
}
控制臺日志: 這是一條Log
發(fā)送消息:你好!

2、定義具體的方法

  • 和類一樣,trait中還可以定義具體的方法。

  • ==示例==

package com.testScala.G_trait

trait LoggerDetail {
  // 在trait中定義具體方法
  def log(msg: String) = println(msg)
}

class PersonService extends LoggerDetail {
  def add() = log("添加用戶")
}

object MethodInTrait {
  def main(args: Array[String]): Unit = {
    val personService = new PersonService
    personService.add()
  }
}
添加用戶

3、定義具體方法和抽象方法

  • 在trait中,可以混合使用具體方法和抽象方法

  • 使用具體方法依賴于抽象方法,而抽象方法可以放到繼承trait的子類中實現(xiàn),這種設(shè)計方式也稱為模板模式

==示例==

package com.testScala.G_trait

trait Logger3 {
  // 抽象方法
  def log(msg: String)
  // 具體方法(該方法依賴于抽象方法log
  def info(msg: String) = log("INFO:" + msg)
  def warn(msg: String) = log("WARN:" + msg)
  def error(msg: String) = log("ERROR:" + msg)
}

class ConsoleLogger3 extends Logger3 {
  override def log(msg: String): Unit = println(msg)
}

object LoggerTrait3 {
  def main(args: Array[String]): Unit = {
    val logger3 = new ConsoleLogger3

    logger3.log("這是一條日志信息")
    logger3.info("這是一條普通信息")
    logger3.warn("這是一條警告信息")
    logger3.error("這是一條錯誤信息")
  }
}
這是一條日志信息
INFO:這是一條普通信息
WARN:這是一條警告信息
ERROR:這是一條錯誤信息

4、定義具體字段和抽象字段

  • 在trait中可以定義具體字段和抽象字段

  • 繼承trait的子類自動擁有trait中定義的字段

  • 字段直接被添加到子類中

package com.testScala.G_trait

import java.text.SimpleDateFormat
import java.util.Date

trait LoggerEx {
  // 具體字段
  val sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm")
  val INFO = "信息:" + sdf.format(new Date)
  // 抽象字段
  val TYPE: String

  // 抽象方法
  def log(msg: String)
}

class ConsoleLoggerEx extends LoggerEx {
  // 實現(xiàn)抽象字段
  override val TYPE: String = "控制臺"
  // 實現(xiàn)抽象方法
  override def log(msg: String): Unit = print(s"$TYPE$INFO $msg")
}

object FieldInTrait {
  def main(args: Array[String]): Unit = {
    val logger = new ConsoleLoggerEx

    logger.log("這是一條消息")
  }
}
控制臺信息:2022-04-24 15:05 這是一條消息

5、實例對象混入trait

  • trait還可以混入到實例對象中,給對象實例添加額外的行為

  • 只有混入了trait的對象才具有trait中的方法,其他的類對象不具有trait中的行為

  • 使用with將trait混入到實例對象中

  • ==示例==

package com.testScala.G_trait

trait LoggerMix {
  def log(msg: String) = println(msg)
}

class UserService

object FixedInClass {
  def main(args: Array[String]): Unit = {
    // 使用with關(guān)鍵字直接將特質(zhì)混入到對象中
    val userService = new UserService with LoggerMix
    userService.log("你好")
  }
}
你好

18、模式匹配和樣例類

  • scala有一個十分強大的模式匹配機制,可以應(yīng)用到很多場合。

    • switch語句

    • 類型查詢

    • 以及快速獲取數(shù)據(jù)

  • 并且scala還提供了樣例類,對模式匹配進行了優(yōu)化,可以快速進行匹配。

1、匹配字符串

import scala.util.Random


//todo:匹配字符串
object CaseDemo01 extends App{
  //定義一個數(shù)組
  val arr = Array("hadoop", "zookeeper", "spark", "storm")

  //隨機取數(shù)組中的一位,使用Random.nextInt
  val name = arr(Random.nextInt(arr.length))
  println(name)

  name match {
    case "hadoop"     => println("大數(shù)據(jù)分布式存儲和計算框架...")
    case "zookeeper"  => println("大數(shù)據(jù)分布式協(xié)調(diào)服務(wù)框架...")
    case "spark"      => println("大數(shù)據(jù)分布式內(nèi)存計算框架...")
    //表示以上情況都不滿足才會走最后一個
    case _            => println("我不認識你")
  }
}
hadoop
大數(shù)據(jù)分布式存儲和計算框架...

2、匹配類型

//todo:匹配類型
object CaseDemo02 extends App{
  //定義一個數(shù)組
  val arr = Array("hello", 1, -2.0, CaseDemo02)

  //隨機獲取數(shù)組中的元素
  val value = arr(Random.nextInt(arr.length))
  println(value)

  value match {
    case x: Int                => println("Int=>"+x)
    case y: Double if(y >= 0)    => println("Double=>"+y)
    case z: String             => println("String=>"+z)
    case _                     => throw new Exception("not match exception")
  }
}
hello
String=>hello

3、匹配數(shù)組

package com.testScala.H_pipei

//匹配數(shù)組
object CaseDemo03 extends App{

  //匹配數(shù)組
  val arr = Array(1, 3, 5)
  arr match {
    case Array(1, x, y) => println(x + "---" + y)
    case Array(1, _*)   => println("1...")
    case Array(0)       => println("only 0")
    case _              => println("something else")

  }
}

1...

4、匹配集合

//匹配集合
object CaseDemo04 extends App{

  val list = List(0, 3, 6)
  list match {
    case 0::Nil        => println("only 0")
    case 0::tail       => println("0....")
    case x::y::z::Nil  => println(s"x:$x y:$y z:$z")
    case _             => println("something else")
  }
}
0....

5、匹配元組

package com.testScala.H_pipei

//匹配元組
object CaseDemo05 extends App{

  val tuple = (1, 3, 5)
  tuple match {
    case (1, x, y)    => println(s"1,$x,$y")
    case (2, x, y)    => println(s"$x,$y")
    case _            => println("others...")
  }
}
1,3,5

6、樣例類

  • 樣例類是一種特殊類,它可以用來快速定義一個用于保存數(shù)據(jù)的類(類似于Java POJO類),==而且它會自動生成apply方法,允許我們快速地創(chuàng)建樣例類實例對象==。后面在并發(fā)編程和spark、flink這些框架也都會經(jīng)常使用它。

  • 定義樣例類

  • 語法結(jié)構(gòu)

case class 樣例類名(成員變量名1: 類型1, 成員變量名2: 類型2 ...)

package com.testScala.H_pipei

// 定義一個樣例類
// 樣例類有兩個成員name、age
case class CasePerson(name: String, age: Int)

// 使用var指定成員變量是可變的
case class CaseStudent(var name: String, var age: Int)

object CaseClassDemo {
  def main(args: Array[String]): Unit = {
    // 1. 使用new創(chuàng)建實例
    val zhagnsan = new CasePerson("張三", 20)
    println(zhagnsan)

    // 2. 使用類名直接創(chuàng)建實例
    val lisi = CasePerson("李四", 21)
    println(lisi)

    // 3. 樣例類默認的成員變量都是val的,除非手動指定變量為var類型
    //lisi.age = 22  // 編譯錯誤!age默認為val類型

    val xiaohong = CaseStudent("小紅", 23)
    xiaohong.age = 24
    println(xiaohong)
  }
}
CasePerson(張三,20)
CasePerson(李四,21)
CaseStudent(小紅,24)

樣例對象

  • 使用case object可以創(chuàng)建樣例對象。樣例對象是單例的,而且它沒有主構(gòu)造器。樣例對象是可序列化的。格式:

case object 樣例對象名

case class SendMessage(text: String)

// 消息如果沒有任何參數(shù),就可以定義為樣例對象
case object startTask
case object PauseTask
case object StopTask

case class SubmitTask(id: String, name: String)
case class HeartBeat(time: Long)
case object CheckTimeOutTask

object CaseDemo06 extends App{
  val arr = Array(CheckTimeOutTask,
    HeartBeat(10000),
    SubmitTask("0001", "task-0001"))

  arr(Random.nextInt(arr.length)) match {

    case SubmitTask(id, name) => println(s"id=$id, name=$name")
    case HeartBeat(time)      => println(s"time=$time")
    case CheckTimeOutTask     => println("檢查超時")
  }
}
檢查超時

7、Option類型

  • 在Scala中Option類型用樣例類來表示可能存在或也可能不存在的值

  • Option類型有2個子類

  • 一個是Some

    • Some包裝了某個值

  • 一個是None

    • None表示沒有值

object TestOption {
  def main(args: Array[String]) {
    val map = Map("a" -> 1, "b" -> 2)

    val value: Option[Int] = map.get("b")
    println(value)
    val v1 = value match {
      case Some(i) => i
      case None => 0
    }
    println(v1)

    //更好的方式
    val v2 = map.getOrElse("c", 0)
    println(v2)
  }
}
Some(2)
2
0

8、偏函數(shù)

  • 被包在花括號內(nèi)==沒有match的一組case語句==是一個偏函數(shù)

  • 它是PartialFunction[A, B]的一個實例,

    • A代表輸入?yún)?shù)類型

    • B代表返回結(jié)果類型

    • 可以理解為:偏函數(shù)是一個參數(shù)和一個返回值的函數(shù)。

  • ==示例==

object TestPartialFunction {
  // func1是一個輸入?yún)?shù)為Int類型,返回值為String類型的偏函數(shù)
  val func1: PartialFunction[Int, String] = {
    case 1 => "一個"
    case 2 => "二個"
    case 3 => "三個"
    case _ => "其他"
  }

  def main(args: Array[String]): Unit = {
    println(func1(1))

    val list = List(1, 2, 3, 4, 5, 6)

    //使用偏函數(shù)操作
    val result = list.filter{
      case x if x >3 => true
      case _ => false
    }
    println(result)
  }

19、異常處理

 ??????

def main(args: Array[String]): Unit = {
   val i = 10 / 0
    
    println("你好!")
  }

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at ForDemo$.main(ForDemo.scala:3)
	at ForDemo.main(ForDemo.scala)

執(zhí)行程序,可以看到scala拋出了異常,而且沒有打印出來"你好"。說明程序出現(xiàn)錯誤后就終止了。那怎么解決該問題呢?

1、 捕獲異常

  • 在scala中,可以使用異常處理來解決這個問題。

    • 在Scala里,借用了==模式匹配的思想來做異常的匹配==

    • 以下為scala中try...catch異常處理的語法格式:

try {
    // 代碼
}
catch {
    case ex: 異常類型1 => // 代碼
    case ex: 異常類型2 => // 代碼
}
finally {
    // 代碼

  • try中的代碼是我們編寫的業(yè)務(wù)處理代碼

  • 在catch中表示當出現(xiàn)某個異常時,需要執(zhí)行的代碼

  • 在finally中,是不管是否出現(xiàn)異常都會執(zhí)行的代碼

try {
    val i = 10 / 0

} catch {
    case ex: Exception => println(ex.getMessage)
} finally {
    println("我始終都會執(zhí)行!")
}

2、拋出異常

  • 我們也可以在一個方法中,拋出異常。語法格式和Java類似,使用throw new Exception...

  • ==示例==

  def main(args: Array[String]): Unit = {
    throw new Exception("這是一個異常")
  }

Exception in thread "main" java.lang.Exception: 這是一個異常
	at ForDemo$.main(ForDemo.scala:3)
	at ForDemo.main(ForDemo.scala)

20、提取器(Extractor)

  • =提取器是從傳遞給它的對象中提取出構(gòu)造該對象的參數(shù)==。(回想樣例類進行模式匹配提取參數(shù))

  • scala 提取器是一個帶有unapply方法的對象。

    • ==unapply方法算是apply方法的反向操作==

    • unapply接受一個對象,然后從對象中提取值,提取的值通常是用來構(gòu)造該對象的值。

package com.testScala.I_Extractor

class Student {
  var name: String = _   // 姓名
  var age: Int = _       // 年齡

  // 實現(xiàn)一個輔助構(gòu)造器
  def this(name: String, age: Int) = {
    this()

    this.name = name
    this.age = age
  }
}

object Student {
  def apply(name: String, age: Int): Student = new Student(name, age)

  // 實現(xiàn)一個解構(gòu)器
  def unapply(arg: Student): Option[(String, Int)] = Some(arg.name, arg.age)
}

object extractor_DEMO {
  def main(args: Array[String]): Unit = {
    val zhangsan = Student("張三", 20)

    zhangsan match {
      case Student(name, age) => println(s"姓名:$name 年齡:$age")
      case _ => println("未匹配")
    }
  }
}
姓名:張三 年齡:20

21、泛型

    scala和Java一樣,類和特質(zhì)、方法都可以支持泛型。我們在學(xué)習(xí)集合的時候,一般都會涉及到泛型。

在scala中,使用方括號來定義==類型參數(shù)==。

1、定義一個泛型方法

object learn01 {
  def getMiddle[A](arr: Array[A]) = arr(arr.length / 2)

  def main(args: Array[String]): Unit = {
    val arr1 = Array(1, 2, 3, 4, 5)
    val arr2 = Array("a", "b", "c", "d", "f")

    println(getMiddle[Int](arr1))
    println(getMiddle[String](arr2))

    // 簡寫方式,scala自動進行類型推斷
    println(getMiddle(arr1))
    println(getMiddle(arr2))
  }
}

2、定義一個泛型類

定義一個Pair類包含2個類型不固定的泛型

package com.testScala.J_fanxing


  // 類名后面的方括號,就表示這個類可以使用兩個類型、分別是T和S
  // 這個名字可以任意取
  class Pair[T, S](val first: T, val second: S)

  case class People(var name: String, val age: Int)

  object Pair {
    def main(args: Array[String]): Unit = {

      val p1 = new Pair[String, Int]("張三", 10)
      println(p1.first)
      val p2 = new Pair[String, String]("張三", "1988-02-19")
      println(p2.first)
      val p3 = new Pair[People, People](People("張三", 20), People("李四", 30))
      println(p3.first.age)
    }
  }
張三
張三
20

22、上下界

  • ==在指定泛型類型時,有時需要界定泛型類型的范圍,而不是接收任意類型==。比如,要求某個泛型類型,必須是某個類的子類,這樣在程序中就可以放心的調(diào)用父類的方法,程序才能正常的使用與運行.

  • scala的上下邊界特性允許泛型類型是某個類的子類,或者是某個類的父類

    • 1、 ==U >: T==

      這是類型==下界==的定義,也就是U必須是類型T的父類或者是T類型本身。

    • 2、 ==U <: T==

      這是類型==上界==的定義,也就是U必須是類型T的子類或者是T類型本身。

  • ==示例一==

package com.testScala.J_fanxing

// 類名后面的指定泛型的范圍 ----上界
class Pair1[T &lt;: Person, S &lt;: Person](val first: T, val second: S) {
  def chat(msg: String) = println(s"${first.name}對${second.name}說: $msg")
}

class Person(var name: String, val age: Int)

object Pair1 {
  def main(args: Array[String]): Unit = {

    val p3 = new Pair1[Person, Person](new Person("張三", 20), new Person("李四", 30))
    p3.chat("你好啊!")
  }
}
張三對李四說: 你好啊!

==示例二==

class Pair22[T &lt;: Person, S &gt;: Policeman &lt;: Person](val first: T, val second: S) {
  def chat(msg: String) = println(s"${first.name}對${second.name}說: $msg")
}

class Person(var name: String, val age: Int)
class Policeman(name: String, age: Int) extends Person(name, age)
class Superman(name: String) extends Policeman(name, -1)

object Pai {
  def main(args: Array[String]): Unit = {
    // 編譯錯誤:第二個類型參數(shù)必須是Person的子類(包括本身)、Policeman的父類(包括本身)
    val p3 = new Pair22[Person, Policeman](new Person("張三", 20), new Policeman("李四",20))
    p3.chat("你好啊!")
  }
}
張三對李四說: 你好??!

23、協(xié)變、逆變、非變

  • 來一個類型轉(zhuǎn)換的問題

class Pair[T](a: T)

object Pair {
  def main(args: Array[String]): Unit = {
    val p1 = new Pair("hello")
    // 編譯報錯,無法將p1轉(zhuǎn)換為p2
    val p2: Pair[AnyRef] = p1

    println(p2)
  }
}

==協(xié)變==

class Pair[+T],這種情況是協(xié)變。類型B是A的子類型,Pair[B]可以認為是Pair[A]的子類型。這種情況,參數(shù)化類型的方向和類型的方向是一致的。

==逆變==

class Pair[-T],這種情況是逆變。類型B是A的子類型,Pair[A]反過來可以認為是Pair[B]的子類型。這種情況,參數(shù)化類型的方向和類型的方向是相反的。 

==非變==

class Pair[T]{},這種情況就是非變(默認),類型B是A的子類型,Pair[A]和Pair[B]沒有任何從屬關(guān)系,這種情況和Java是一樣的。 

package com.testScala.K_xieBian

class Super
class Sub extends Super

//非變
class Temp1[A](title: String)
//協(xié)變
class Temp2[+A](title: String)
//逆變
class Temp3[-A](title: String)

object Covariance_demo {
  def main(args: Array[String]): Unit = {
    val a = new Sub()
    // 沒有問題,Sub是Super的子類
    val b: Super = a

    // 非變
    val t1: Temp1[Sub] = new Temp1[Sub]("測試")
    // 報錯!默認不允許轉(zhuǎn)換
    // val t2: Temp1[Super] = t1

    // 協(xié)變
    val t3: Temp2[Sub] = new Temp2[Sub]("測試")
    val t4: Temp2[Super] = t3

    // 逆變
    val t5: Temp3[Super] = new Temp3[Super]("測試")
    val t6: Temp3[Sub] = t5
  }
}

 ==總結(jié)==

C[+T]:如果A是B的子類,那么C[A]是C[B]的子類。
C[-T]:如果A是B的子類,那么C[B]是C[A]的子類。
C[T]: 無論A和B是什么關(guān)系,C[A]和C[B]沒有從屬關(guān)系。

24、隱式轉(zhuǎn)換和隱式參數(shù)

1 隱式轉(zhuǎn)換

  • Scala提供的隱式轉(zhuǎn)換和隱式參數(shù)功能,是非常有特色的功能。是Java等編程語言所沒有的功能。

  • 它可以允許你手動指定,將某種類型的對象轉(zhuǎn)換成其他類型的對象或者是給一個類增加方法。通過這些功能,可以實現(xiàn)非常強大、特殊的功能。

  • 隱式轉(zhuǎn)換其核心就是定義一個使用 ==implicit== 關(guān)鍵字修飾的方法 實現(xiàn)把一個原始類轉(zhuǎn)換成目標類,進而可以調(diào)用目標類中的方法

.2 隱式參數(shù)

  • 所謂的隱式參數(shù),指的是在函數(shù)或者方法中,定義一個用implicit修飾的參數(shù),此時Scala會嘗試找到一個指定類型的用implicit修飾的值,即==隱式值==,并注入?yún)?shù)。

  • ==所有的隱式轉(zhuǎn)換和隱式參數(shù)必須定義在一個object中==

  • package com.kaikeba.implic_demo
    
    //todo:隱式轉(zhuǎn)換案例二:超人變身
    class Man(val name: String)
    
    class SuperMan(val name: String) {
      def heat = print("超人打怪獸")
    }
    
    object SuperMan{
      //隱式轉(zhuǎn)換方法
      implicit def man2SuperMan(man: Man) = new SuperMan(man.name)
    
      def main(args: Array[String]) {
          val hero = new Man("hero")
          //Man具備了SuperMan的方法
          hero.heat
      }
    }

到此這篇關(guān)于Scala基礎(chǔ)語法總結(jié)的文章就介紹到這了,更多相關(guān)Scala基礎(chǔ)語法詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Windows7下安裝Scala 2.9.2教程

    Windows7下安裝Scala 2.9.2教程

    這篇文章主要介紹了Windows7下安裝Scala 2.9.2教程,本文給出了Scala的安裝步驟以及在Eclipse IDE安裝Scala的步驟,需要的朋友可以參考下
    2015-03-03
  • Scala實現(xiàn)二分查找的代碼實例

    Scala實現(xiàn)二分查找的代碼實例

    這篇文章主要介紹了Scala實現(xiàn)二分查找的代碼實例,找到數(shù)組的中間值,和需要查找的值進行對比:如果中間值等于查找值,直接返回中間值下標;如果中間值大于查找值,則遞歸向左邊查找;如果中間值小于查找值,則遞歸向右邊查找,直到找完所有的元素,需要的朋友可以參考下
    2023-11-11
  • Scala基礎(chǔ)簡介及代碼示例

    Scala基礎(chǔ)簡介及代碼示例

    這篇文章主要介紹了Scala基礎(chǔ)簡介及代碼示例,小編覺得挺不錯的,這里給大家分享下,供需要的朋友參考。
    2017-10-10
  • Scala基礎(chǔ)語法總結(jié)

    Scala基礎(chǔ)語法總結(jié)

    這篇文章主要介紹了Scala基礎(chǔ)語法總結(jié),需要的朋友可以參考下
    2023-10-10
  • 淺談Scala的Class、Object和Apply()方法

    淺談Scala的Class、Object和Apply()方法

    下面小編就為大家?guī)硪黄獪\談Scala的Class、Object和Apply()方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Scala排序算法之歸并排序解析

    Scala排序算法之歸并排序解析

    這篇文章主要介紹了Java排序算法之歸并排序解析,簡介:歸并排序是一種經(jīng)典的排序算法,它采用分治的思想,將待排序的數(shù)組不斷地分割成小的子數(shù)組,然后再將這些子數(shù)組合并成有序的數(shù)組,需要的朋友可以參考下
    2023-10-10
  • Scala安裝及環(huán)境圖文配置教程

    Scala安裝及環(huán)境圖文配置教程

    這篇文章主要為大家詳細介紹了Scala安裝及環(huán)境圖文配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 利用Gradle如何構(gòu)建scala多模塊工程的步驟詳解

    利用Gradle如何構(gòu)建scala多模塊工程的步驟詳解

    這篇文章主要給大家介紹了關(guān)于如何利用Gradle構(gòu)建scala多模塊工程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04

最新評論

日韩av有码中文字幕| 不卡一区一区三区在线| 国产夫妻视频在线观看免费| 天天想要天天操天天干| 天天射夜夜操综合网| 晚上一个人看操B片| 2022天天干天天操| 含骚鸡巴玩逼逼视频| 久久艹在线观看视频| 色97视频在线播放| 男人天堂av天天操| 黑人大几巴狂插日本少妇| 精品久久久久久高潮| 中文字幕成人日韩欧美| 在线不卡日韩视频播放| 色综合天天综合网国产成人| 成人高潮aa毛片免费| 涩涩的视频在线观看视频| 欧美香蕉人妻精品一区二区| 亚洲国产40页第21页| 日本丰满熟妇大屁股久久| 天天色天天操天天舔| 午夜精品在线视频一区| 一区二区在线观看少妇| 五月天久久激情视频| 99精品免费观看视频| 在线视频精品你懂的| 久久免看30视频口爆视频| 国产大学生援交正在播放| 91福利在线视频免费观看| 黑人变态深video特大巨大| 精品91高清在线观看| 好吊视频—区二区三区| 中文字幕视频一区二区在线观看| 欧美怡红院视频在线观看| 久久精品国产999| 午夜精品一区二区三区福利视频| 东游记中文字幕版哪里可以看到| 国产激情av网站在线观看| 亚洲一区二区三区久久受| 欧美成人综合色在线噜噜| 成人精品在线观看视频| 国产福利小视频大全| 日韩熟女系列一区二区三区| 91she九色精品国产| 精品人妻伦一二三区久 | 中文字幕第一页国产在线| 亚洲嫩模一区二区三区| 国产97视频在线精品| 老司机你懂得福利视频| 国产91久久精品一区二区字幕| 唐人色亚洲av嫩草| 又黄又刺激的午夜小视频| 88成人免费av网站| 国产在线免费观看成人| 日韩欧美一级aa大片| 亚洲精品欧美日韩在线播放| 91国产在线免费播放| 欧美精品免费aaaaaa| 久久久极品久久蜜桃| 日韩近亲视频在线观看| 老师让我插进去69AV| 日本三极片中文字幕| 2018最新中文字幕在线观看| 日韩激情文学在线视频| av资源中文字幕在线观看| 国产久久久精品毛片| 日本真人性生活视频免费看| 亚洲 欧美 自拍 偷拍 在线| 免费手机黄页网址大全| 91老师蜜桃臀大屁股| 99一区二区在线观看| 日韩a级黄色小视频| 亚洲最大免费在线观看| 中文字幕乱码av资源| 999九九久久久精品| 人妻av无码专区久久绿巨人| 91色网站免费在线观看| 视频久久久久久久人妻| 青青色国产视频在线| 无套猛戳丰满少妇人妻| 国产精品国色综合久久| 日韩在线视频观看有码在线| 久久久极品久久蜜桃| 日本裸体熟妇区二区欧美| 天天日天天干天天干天天日| 97国产福利小视频合集| 成人av电影免费版| 在线观看的黄色免费网站| 久草极品美女视频在线观看| 在线不卡成人黄色精品| 日本乱人一区二区三区| 喷水视频在线观看这里只有精品| 亚洲第一黄色在线观看| 免费观看理论片完整版| 97小视频人妻一区二区| 亚洲激情偷拍一区二区| 一本一本久久a久久精品综合不卡 亚洲另类综合一区小说 | 欧美精品伦理三区四区| 91国产在线视频免费观看| 白白操白白色在线免费视频| 午夜国产免费福利av| 国产日韩一区二区在线看| 国产亚洲精品欧洲在线观看| 只有精品亚洲视频在线观看| 啊啊啊视频试看人妻| 四川乱子伦视频国产vip| 欧美精品中文字幕久久二区| 国产一级精品综合av| 中国黄色av一级片| 激情综合治理六月婷婷| 中文字幕人妻av在线观看| 精品美女久久久久久| 色综合色综合色综合色| 国产一区av澳门在线观看| 国产高清女主播在线| 美女张开腿让男生操在线看| 超碰中文字幕免费观看| 中文字幕日本人妻中出| 中文字幕 亚洲av| 欧美性感尤物人妻在线免费看| 大尺度激情四射网站| 99热99这里精品6国产| 久久综合老鸭窝色综合久久| 超碰97人人做人人爱| 国产剧情演绎系列丝袜高跟| 中文字幕一区二 区二三区四区 | 国产日本欧美亚洲精品视| 人妻激情图片视频小说| 日本熟妇色熟妇在线观看| 福利在线视频网址导航| 97欧洲一区二区精品免费| 天干天天天色天天日天天射| 97国产精品97久久| 午夜成午夜成年片在线观看 | 亚洲欧美另类手机在线| 操的小逼流水的文章| 男大肉棒猛烈插女免费视频| 不卡一区一区三区在线| 欧美老鸡巴日小嫩逼| av乱码一区二区三区| 大黑人性xxxxbbbb| 日日夜夜精品一二三| av天堂加勒比在线| 国产午夜无码福利在线看| 亚洲综合一区成人在线| 97人妻夜夜爽二区欧美极品| 亚洲av自拍偷拍综合| 欧美亚洲少妇福利视频| 最后99天全集在线观看| 亚洲男人的天堂a在线| 美女吃鸡巴操逼高潮视频| 国产精品精品精品999| 亚洲在线免费h观看网站| 91国产在线免费播放| 综合色区亚洲熟妇shxstz| 亚洲午夜精品小视频| 精品suv一区二区69| 国产之丝袜脚在线一区二区三区 | 久久精品国产999| 国产性色生活片毛片春晓精品| 亚洲av香蕉一区区二区三区犇| 免费在线播放a级片| a v欧美一区=区三区| 97国产在线观看高清| 五十路人妻熟女av一区二区| 在线免费观看黄页视频| 韩国亚洲欧美超一级在线播放视频| 国产日本欧美亚洲精品视| 亚洲国产精品黑丝美女| 亚洲国际青青操综合网站| 91超碰青青中文字幕| 欧美日韩在线精品一区二区三| 毛片一级完整版免费| 特级欧美插插插插插bbbbb| 高清一区二区欧美系列| 五十路老熟女码av| 欧洲日韩亚洲一区二区三区| 日韩av有码一区二区三区4| 女同久久精品秋霞网| 91极品新人『兔兔』精品新作| 红杏久久av人妻一区| av日韩在线免费播放| 亚洲综合在线观看免费| 少妇人妻100系列| 国产视频一区在线观看| av网站色偷偷婷婷网男人的天堂| 中文字幕最新久久久| 青青草原网站在线观看| 中文字幕无码一区二区免费| 一级A一级a爰片免费免会员| 成人伊人精品色xxxx视频| 青青色国产视频在线| rct470中文字幕在线| 午夜精彩视频免费一区| 在线视频这里只有精品自拍| 边摸边做超爽毛片18禁色戒| 韩国黄色一级二级三级| 日本啪啪啪啪啪啪啪| 在线国产精品一区二区三区| 91精品综合久久久久3d动漫| 亚洲一级av无码一级久久精品| av在线资源中文字幕| 天天干天天爱天天色| 经典av尤物一区二区| 亚洲国产美女一区二区三区软件| 成人精品在线观看视频| 成人久久精品一区二区三区| 精品91自产拍在线观看一区| 大鸡巴操娇小玲珑的女孩逼| 亚洲久久午夜av一区二区| 亚洲国产欧美国产综合在线| 欧美日韩激情啪啪啪| 天天色天天操天天舔| 精彩视频99免费在线| 国产成人精品一区在线观看| 91国内视频在线观看| 超级av免费观看一区二区三区| 国产精彩对白一区二区三区| 2o22av在线视频| 一区二区久久成人网| 国产品国产三级国产普通话三级| 男人操女人的逼免费视频| 亚洲国产第一页在线观看| 久久久久久久久久久免费女人| 在线观看av2025| 亚洲的电影一区二区三区| 国产精品一二三不卡带免费视频| jul—619中文字幕在线| 久久三久久三久久三久久| 国产精品大陆在线2019不卡 | 欧美香蕉人妻精品一区二区| 亚洲福利午夜久久久精品电影网 | 韩国黄色一级二级三级| 清纯美女在线观看国产| 夜夜嗨av蜜臀av| 日本熟女50视频免费| 大陆胖女人与丈夫操b国语高清| 91国内精品自线在拍白富美| 日韩少妇人妻精品无码专区| 一区二区三区四区视频| 青青尤物在线观看视频网站| 人人在线视频一区二区| 337p日本大胆欧美人| 日比视频老公慢点好舒服啊| 污污小视频91在线观看| 日本三极片视频网站观看| 国产日本精品久久久久久久| 国产日本欧美亚洲精品视| 动漫美女的小穴视频| 国产又粗又硬又大视频| 噜噜色噜噜噜久色超碰| 一区二区三区美女毛片| 国产片免费观看在线观看| 日本又色又爽又黄又粗| av手机在线观播放网站| 色秀欧美视频第一页| 伊人成人综合开心网| 精品乱子伦一区二区三区免费播| 天天操,天天干,天天射| 欧美亚洲牲夜夜综合久久| 成人高潮aa毛片免费| 特黄老太婆aa毛毛片| 天天日天天日天天射天天干| 在线观看日韩激情视频| 欧美老鸡巴日小嫩逼| 在线观看av观看av| 女警官打开双腿沦为性奴| 中文字幕综合一区二区| 视频一区 二区 三区 综合| 亚洲区美熟妇久久久久| 91精品国产高清自在线看香蕉网 | 男女之间激情网午夜在线| 国产福利小视频大全| 午夜免费观看精品视频| 国产精品一区二区三区蜜臀av| 99久久中文字幕一本人| 2020国产在线不卡视频| 91久久人澡人人添人人爽乱| 日韩成人免费电影二区| ka0ri在线视频| 国产精品中文av在线播放| 国产精品久久综合久久| 风流唐伯虎电视剧在线观看 | 天天草天天色天天干| 亚洲欧美日韩视频免费观看| 亚洲丝袜老师诱惑在线观看| 可以在线观看的av中文字幕| yy96视频在线观看| 亚洲国产精品美女在线观看| 国产一区二区久久久裸臀| 天天色天天爱天天爽| 日韩精品中文字幕在线| yy6080国产在线视频| 国产黄色片蝌蚪九色91| 最新中文字幕免费视频| 亚洲粉嫩av一区二区三区| 免费黄色成人午夜在线网站| 天天摸天天亲天天舔天天操天天爽 | 天天日天天爽天天爽| 亚洲一区二区人妻av| 99国内小视频在现欢看| av视网站在线观看| 国产精品一区二区三区蜜臀av| av完全免费在线观看av| 狠狠躁夜夜躁人人爽天天久天啪| 国产大鸡巴大鸡巴操小骚逼小骚逼| 成熟熟女国产精品一区| 日日夜夜精品一二三| 国产中文精品在线观看| 精品视频中文字幕在线播放 | 日韩一区二区三区三州| 快插进小逼里大鸡吧视频| 熟女人妻三十路四十路人妻斩| 亚洲公开视频在线观看| 美女被肏内射视频网站| 99热久久极品热亚洲| 欧美一级色视频美日韩| 精品suv一区二区69| 涩爱综合久久五月蜜臀| 啪啪啪啪啪啪啪啪啪啪黄色| 超pen在线观看视频公开97| 狠狠地躁夜夜躁日日躁| 午夜精品福利91av| 成人高潮aa毛片免费| 久久久久久性虐视频| 在线视频自拍第三页| 国产成人自拍视频播放| 国产一区二区久久久裸臀| 视频 一区二区在线观看| 老司机你懂得福利视频| 亚洲精品久久视频婷婷| 精品久久久久久久久久中文蒉| 888欧美视频在线| 亚洲国产最大av综合| 日韩美女综合中文字幕pp| 狠狠操操操操操操操操操| 大白屁股精品视频国产| 日韩中文字幕在线播放第二页| 北条麻妃肉色丝袜视频| 欧美天堂av无线av欧美| 97精品成人一区二区三区| 国产视频在线视频播放| 国产熟妇一区二区三区av | 好男人视频在线免费观看网站| 成人在线欧美日韩国产| 欧美爆乳肉感大码在线观看| 中文字幕第1页av一天堂网| 亚洲一区二区三区av网站| 国产97在线视频观看| 一本久久精品一区二区| 91国偷自产一区二区三区精品| 中文字幕亚洲久久久| 精品一区二区三四区| 久草电影免费在线观看| 亚国产成人精品久久久| 欧美综合婷婷欧美综合| 18禁免费av网站| 亚洲图片欧美校园春色| 动漫美女的小穴视频| 国产精彩福利精品视频| 成人亚洲精品国产精品| 亚洲综合在线视频可播放| 啪啪啪啪啪啪啪啪啪啪黄色| 国产高清女主播在线| 丰满的子国产在线观看| 一级黄片大鸡巴插入美女| 国产视频一区在线观看| 人妻爱爱 中文字幕| 一色桃子人妻一区二区三区| 精品亚洲在线免费观看| 日本黄色特一级视频| 人人在线视频一区二区| 人妻少妇中文有码精品| 大香蕉大香蕉在线有码 av| 91亚洲国产成人精品性色| 一级a看免费观看网站| 亚洲午夜精品小视频| 亚洲午夜精品小视频| 福利在线视频网址导航| 中文字幕之无码色多多| 国产综合精品久久久久蜜臀| 午夜美女少妇福利视频| 超级福利视频在线观看| 国产精品黄页网站视频| 欧美日韩高清午夜蜜桃大香蕉 | 中文字幕综合一区二区| 热99re69精品8在线播放| 国产精品国产精品一区二区| 青青尤物在线观看视频网站| 国语对白xxxx乱大交| 无码精品一区二区三区人| 国产日韩精品免费在线| 中文字幕一区二区人妻电影冢本| 精品少妇一二三视频在线| 天天操天天干天天插| 1000部国产精品成人观看视频| 大香蕉福利在线观看| 国产一区二区欧美三区| 成年人啪啪视频在线观看| 日韩一区二区三区三州| 日韩av有码中文字幕| 啊慢点鸡巴太大了啊舒服视频| 亚洲熟女久久久36d| 91超碰青青中文字幕| 直接能看的国产av| 国产在线免费观看成人| 91人妻精品一区二区在线看| 超碰97免费人妻麻豆| 日韩欧美一级黄片亚洲| 在线网站你懂得老司机| 夜色福利视频在线观看| 免费无码人妻日韩精品一区二区 | 五月色婷婷综合开心网4438| 大香蕉伊人中文字幕| 国产亚洲四十路五十路| 无码精品一区二区三区人| 国产夫妻视频在线观看免费| 亚洲高清国产拍青青草原| 91色老99久久九九爱精品| 日本黄在免费看视频| 在线免费观看日本伦理| 中文字幕午夜免费福利视频| 韩国三级aaaaa高清视频| 人妻激情图片视频小说| 专门看国产熟妇的网站| 亚洲最大黄 嗯色 操 啊| 日韩欧美在线观看不卡一区二区| 久久久精品999精品日本| 狠狠操狠狠操免费视频| 午夜场射精嗯嗯啊啊视频| 久久尻中国美女视频| 在线观看免费视频色97| 亚洲欧美成人综合在线观看| 国产亚洲视频在线观看| 日本熟女精品一区二区三区| 国产精品中文av在线播放| 在线观看的黄色免费网站| 国产熟妇一区二区三区av | 欧美专区第八页一区在线播放| 性生活第二下硬不起来| 宅男噜噜噜666免费观看| 偷拍自拍福利视频在线观看| 亚洲伊人色一综合网| 99久久99久国产黄毛片| 日本黄色特一级视频| 一级黄色av在线观看| 夜夜嗨av蜜臀av| 午夜免费观看精品视频| 亚洲公开视频在线观看| 久久久超爽一二三av| 欧美日韩高清午夜蜜桃大香蕉 | 天天日天天做天天日天天做| 91国产在线视频免费观看| 最新日韩av传媒在线| 精品国产污污免费网站入口自 | 午夜国产免费福利av| 人人人妻人人澡人人| 大鸡八强奸视频在线观看| 国产综合精品久久久久蜜臀| 好了av中文字幕在线| 91色秘乱一区二区三区| 亚洲图库另类图片区| 日本又色又爽又黄又粗| 亚洲精品高清自拍av| 97色视频在线观看| 特大黑人巨大xxxx| 大白屁股精品视频国产| 精品久久久久久久久久久a√国产| 天天操天天干天天插| 都市激情校园春色狠狠| 三级av中文字幕在线观看| 青青草国内在线视频精选| 色综合久久久久久久久中文| 青青青视频手机在线观看| 亚洲国产欧美一区二区三区…| 国产一级精品综合av| 免费观看丰满少妇做受| 日本女人一级免费片| 2022天天干天天操| av森泽佳奈在线观看| 97年大学生大白天操逼| 亚洲成人av在线一区二区| 亚洲区欧美区另类最新章节| 又粗又长 明星操逼小视频| 视频一区 视频二区 视频| 2022天天干天天操| 午夜福利人人妻人人澡人人爽| 亚洲色偷偷综合亚洲AV伊人| 欧美日韩一区二区电影在线观看| 亚洲推理片免费看网站| 日本熟女精品一区二区三区| 中文字幕人妻av在线观看| 国产不卡av在线免费| 老司机福利精品视频在线| 91试看福利一分钟| 在线新三级黄伊人网| 亚洲日本一区二区三区| av久久精品北条麻妃av观看| 成年美女黄网站18禁久久| 久久久久久国产精品| 91精品一区二区三区站长推荐| 欧洲日韩亚洲一区二区三区 | 视频 一区二区在线观看| av天堂中文免费在线| v888av在线观看视频| 日日夜夜精品一二三| 青青青青操在线观看免费| 99亚洲美女一区二区三区| 91亚洲手机在线视频播放| 亚洲 清纯 国产com| 国产极品精品免费视频| 国产亚洲国产av网站在线| 日本精品视频不卡一二三| 精品国产成人亚洲午夜| 91老师蜜桃臀大屁股| 欧美精品资源在线观看| 天天综合天天综合天天网| 亚洲午夜精品小视频| 成年人黄色片免费网站| 中文字幕av第1页中文字幕| 六月婷婷激情一区二区三区| lutube在线成人免费看 | 天码人妻一区二区三区在线看| 久久久噜噜噜久久熟女av| 又粗又硬又猛又黄免费30| 国产精品国产三级国产午| 天天做天天干天天操天天射| 一级黄色片夫妻性生活| 人人在线视频一区二区| 91av精品视频在线| 91综合久久亚洲综合| 自拍偷拍,中文字幕| 2025年人妻中文字幕乱码在线 | 日韩欧美国产一区ab| 又粗又硬又猛又爽又黄的| 人妻丝袜av在线播放网址| 日本女人一级免费片| 人妻无码中文字幕专区| 国产三级片久久久久久久| 成人性黑人一级av| 88成人免费av网站| 美女福利视频网址导航| 亚洲欧美另类自拍偷拍色图| yellow在线播放av啊啊啊| 区一区二区三国产中文字幕| 98精产国品一二三产区区别| 亚洲超碰97人人做人人爱| 51国产偷自视频在线播放| 美女av色播在线播放| 免费成人av中文字幕| 黑人解禁人妻叶爱071| 亚洲变态另类色图天堂网| 亚洲精品三级av在线免费观看| 黄色片黄色片wyaa| 做爰视频毛片下载蜜桃视频1| 日本韩国免费福利精品| 国产又色又刺激在线视频| 国产成人自拍视频播放| 99一区二区在线观看| 狠狠躁夜夜躁人人爽天天久天啪| 国产精品午夜国产小视频| 成人av天堂丝袜在线观看| 亚洲超碰97人人做人人爱| 女蜜桃臀紧身瑜伽裤| 2021最新热播中文字幕| 特级无码毛片免费视频播放| 天天干天天日天天谢综合156| 韩国爱爱视频中文字幕| 偷偷玩弄新婚人妻h视频| 欧美精品中文字幕久久二区| 熟女人妻三十路四十路人妻斩| 社区自拍揄拍尻屁你懂的| 亚洲熟色妇av日韩熟色妇在线| 专门看国产熟妇的网站| caoporm超碰国产| 在线观看日韩激情视频| 日本啪啪啪啪啪啪啪| 国产va在线观看精品| 夜色17s精品人妻熟女| 视频一区二区三区高清在线| 爆乳骚货内射骚货内射在线| 欧美亚洲中文字幕一区二区三区| 国产黄色a级三级三级三级| 国产成人综合一区2区| 最新中文字幕乱码在线| 日韩成人性色生活片| 黑人性生活视频免费看| 欧美精品激情在线最新观看视频| 欧美日韩亚洲国产无线码| 91九色porny国产在线| 亚洲欧美色一区二区| 99人妻视频免费在线| 超级碰碰在线视频免费观看| 日本熟妇喷水xxx| 91片黄在线观看喷潮| 91国产在线视频免费观看| 亚洲高清国产拍青青草原| 大陆胖女人与丈夫操b国语高清 | 中文字幕欧美日韩射射一| 国产亚洲成人免费在线观看| 欧美日韩一区二区电影在线观看| 中国熟女@视频91| 91亚洲手机在线视频播放| 天天操天天操天天碰| 青娱乐极品视频青青草| 老司机福利精品免费视频一区二区 | 天天干夜夜操啊啊啊| 91啪国自产中文字幕在线| 综合激情网激情五月天| 男人插女人视频网站| 国产成人精品av网站| 中文人妻AV久久人妻水| av成人在线观看一区| 国产中文字幕四区在线观看| 成人动漫大肉棒插进去视频| 免费费一级特黄真人片| 深田咏美亚洲一区二区 | 四川五十路熟女av| 视频一区二区三区高清在线| 91精品国产综合久久久蜜| 大香蕉玖玖一区2区| 人人妻人人爱人人草| 在线观看的a站 最新| 五十路熟女av天堂| 98精产国品一二三产区区别| 欧美成人一二三在线网| 黄色成年网站午夜在线观看| 中文字幕亚洲久久久| 绝顶痉挛大潮喷高潮无码| 亚洲图片偷拍自拍区| 成人综合亚洲欧美一区| 男人天堂av天天操| 亚洲国产精品美女在线观看| 小泽玛利亚视频在线观看| 亚洲卡1卡2卡三卡四老狼| 夜色撩人久久7777| 91九色国产porny蝌蚪| 国产福利小视频免费观看| 97香蕉碰碰人妻国产樱花| 精品人妻一二三区久久| 喷水视频在线观看这里只有精品| 国产精品自偷自拍啪啪啪| 青青草成人福利电影| 人妻少妇精品久久久久久| 免费观看污视频网站| 一色桃子久久精品亚洲| 欧美黑人与人妻精品| 日本精品视频不卡一二三| 欧美日韩熟女一区二区三区| 精品一线二线三线日本| 偷拍自拍亚洲视频在线观看| 在线观看视频一区麻豆| 新婚人妻聚会被中出| 护士特殊服务久久久久久久| 99热这里只有精品中文| 大鸡吧插逼逼视频免费看| japanese日本熟妇另类| chinese国产盗摄一区二区| 伊人综合免费在线视频| weyvv5国产成人精品的视频| 欧美黑人性猛交xxxxⅹooo| 青娱乐蜜桃臀av色| 国产精品自拍在线视频| 国产超码片内射在线| 人妻少妇亚洲一区二区| 无码精品一区二区三区人| 亚洲另类伦春色综合小| 欧美日韩人妻久久精品高清国产 | 大肉大捧一进一出好爽在线视频| 亚洲在线一区二区欧美| 亚洲天堂精品福利成人av| 久久综合老鸭窝色综合久久| 嫩草aⅴ一区二区三区| 2020中文字幕在线播放| 亚洲国际青青操综合网站| 2o22av在线视频| 国产超码片内射在线| 福利视频网久久91| 国产黄色a级三级三级三级| 国产1区,2区,3区| 亚洲老熟妇日本老妇| 亚洲福利精品视频在线免费观看| 亚洲在线观看中文字幕av| 动漫黑丝美女的鸡巴| 日韩精品二区一区久久| 97香蕉碰碰人妻国产樱花| 青青青激情在线观看视频| 在线观看av2025| 国产使劲操在线播放| 91色老99久久九九爱精品| 精品一区二区三区三区88 | av在线免费资源站| 日韩近亲视频在线观看| 亚洲欧美久久久久久久久| aⅴ精产国品一二三产品| 久久精品亚洲成在人线a| 国产高清女主播在线| av中文在线天堂精品| 无码中文字幕波多野不卡| 国产97视频在线精品| 夜色17s精品人妻熟女| 亚洲国际青青操综合网站 | 99精品国产自在现线观看| 偷拍3456eee| 亚洲欧美另类手机在线| 天天躁日日躁狠狠躁躁欧美av| 亚洲免费国产在线日韩| 大鸡吧插入女阴道黄色片| 亚洲少妇高潮免费观看| 精品亚洲在线免费观看| 九九热99视频在线观看97| 欧美女同性恋免费a| 日韩黄色片在线观看网站| 任你操任你干精品在线视频| 欧美黄片精彩在线免费观看| 91免费观看在线网站| 天堂av在线最新版在线| 97国产在线观看高清| 亚洲av香蕉一区区二区三区犇| 日比视频老公慢点好舒服啊| 精品老妇女久久9g国产| 亚洲在线免费h观看网站| 免费无毒热热热热热热久| 日本性感美女三级视频| yy96视频在线观看| 日韩精品啪啪视频一道免费| 国产日韩一区二区在线看| 国内自拍第一页在线观看| 国产视频网站国产视频| 最近中文2019年在线看| 日本乱人一区二区三区| 亚洲第17页国产精品| av在线免费资源站| 人妻爱爱 中文字幕| 最后99天全集在线观看| 丰满的子国产在线观看| 91超碰青青中文字幕| 国语对白xxxx乱大交| 大陆精品一区二区三区久久| 国产成人精品福利短视频| 日韩欧美高清免费在线| 国产精品熟女久久久久浪潮| 888欧美视频在线| 少妇系列一区二区三区视频| 伊人网中文字幕在线视频| 亚洲国产在线精品国偷产拍| 国产黄色片在线收看| 国产精品成久久久久三级蜜臀av| 国产高清在线观看1区2区| 欧美精品资源在线观看| 国产超码片内射在线| 成人资源在线观看免费官网| 亚洲日本一区二区三区| 99热这里只有精品中文| 91极品大一女神正在播放| 午夜免费体验区在线观看| 狠狠嗨日韩综合久久| 国产一级麻豆精品免费| 在线免费观看欧美小视频| 欧美日本国产自视大全| 国产福利小视频免费观看| 在线观看av亚洲情色| 中字幕人妻熟女人妻a62v网| 黑人乱偷人妻中文字幕| 亚洲精品成人网久久久久久小说| 一区二区三区蜜臀在线| 亚洲综合在线视频可播放| 高清成人av一区三区| 狠狠鲁狠狠操天天晚上干干| 91国内精品自线在拍白富美| 成人av久久精品一区二区| 丝袜亚洲另类欧美变态| 色呦呦视频在线观看视频| 天天爽夜夜爽人人爽QC| 91精品国产91久久自产久强| 婷婷综合蜜桃av在线| 免费看国产又粗又猛又爽又黄视频| 人妻少妇中文有码精品| 国产乱弄免费视频观看| 中文字幕AV在线免费看 | 97超碰最新免费在线观看| 亚洲超碰97人人做人人爱| 中文字母永久播放1区2区3区| 春色激情网欧美成人| 久久久超爽一二三av| 国产免费高清视频视频| 91老熟女连续高潮对白| 伊人日日日草夜夜草| 日本在线一区二区不卡视频| 最近中文字幕国产在线| 亚洲va天堂va国产va久| 亚洲另类在线免费观看| 大香蕉大香蕉大香蕉大香蕉大香蕉| 成人免费做爰高潮视频| 国产污污污污网站在线| 国产女人叫床高潮大片视频| 人人在线视频一区二区| 中出中文字幕在线观看| 视频一区二区综合精品| av新中文天堂在线网址| 偷拍自拍亚洲视频在线观看| 亚洲精品国产久久久久久| 热思思国产99re| 免费看国产av网站| 91国内精品久久久久精品一| 青青青青青免费视频| 欧美va不卡视频在线观看| 中国把吊插入阴蒂的视频| 在线观看免费岛国av| 日本美女性生活一级片| 欧美亚洲偷拍自拍色图| 欧美偷拍亚洲一区二区| 日韩少妇人妻精品无码专区| 在线播放 日韩 av| wwwxxx一级黄色片| 成人av电影免费版| 亚洲在线一区二区欧美| 亚洲国产最大av综合| 五月激情婷婷久久综合网| 国产又粗又猛又爽又黄的视频美国| 91she九色精品国产| 亚洲欧美色一区二区| 国产av欧美精品高潮网站| 天天日天天操天天摸天天舔| 亚洲av色图18p| 国产熟妇一区二区三区av | 欧美成人精品在线观看| 成人免费做爰高潮视频| 国产视频网站一区二区三区| 在线观看av2025| 99视频精品全部15| 99久久超碰人妻国产| 91久久人澡人人添人人爽乱| 二区中出在线观看老师| 粉嫩小穴流水视频在线观看| 一区二区三区av高清免费| 国产福利小视频大全| 美女大bxxxx内射| av视屏免费在线播放| 免费观看丰满少妇做受| 免费一级特黄特色大片在线观看 | 黄片三级三级三级在线观看| 亚洲 中文 自拍 另类 欧美 | 日韩熟女av天堂系列| 日韩伦理短片在线观看| 欧美日韩情色在线观看| 亚洲视频乱码在线观看| 日本少妇的秘密免费视频| 九九视频在线精品播放| 大鸡吧插逼逼视频免费看| 亚洲av自拍偷拍综合| 成年午夜免费无码区| 亚洲精品国产在线电影| 美味人妻2在线播放| 一区二区三区另类在线 | 国产综合视频在线看片| 2020av天堂网在线观看| 99精品国自产在线人| 粉嫩av懂色av蜜臀av| 亚洲嫩模一区二区三区| 天天日夜夜操天天摸| 国产不卡av在线免费| 久久久久久久99精品| 国产精品久久久黄网站| 3344免费偷拍视频| 日美女屁股黄邑视频| 91国内视频在线观看| 五十路熟女人妻一区二| 天天日天天添天天爽| 午夜久久香蕉电影网| 日韩美女搞黄视频免费| 黄色视频在线观看高清无码| 欧美区一区二区三视频| 超碰97人人澡人人| 91p0rny九色露脸熟女| 动色av一区二区三区| 久草视频 久草视频2| 精品国产在线手机在线| 国产女人叫床高潮大片视频| 欧美综合婷婷欧美综合| 国产亚洲精品视频合集| 任你操任你干精品在线视频| 天天躁夜夜躁日日躁a麻豆| 韩国女主播精品视频网站| 性色蜜臀av一区二区三区| 日韩欧美国产一区ab| 精品高跟鞋丝袜一区二区| av视屏免费在线播放| 日韩加勒比东京热二区| 色综合天天综合网国产成人| 久久这里只有精品热视频| 91久久综合男人天堂| 成人乱码一区二区三区av| 在线国产中文字幕视频| 青青草原色片网站在线观看| 天堂中文字幕翔田av| 成人av在线资源网站| 国产精品黄页网站视频| 亚洲一区二区三区精品视频在线| 中文乱理伦片在线观看| 免费无毒热热热热热热久| 国产av一区2区3区| 精品欧美一区二区vr在线观看| av欧美网站在线观看| 18禁无翼鸟成人在线| 久草视频在线免播放| 97年大学生大白天操逼| 欧美80老妇人性视频| 在线观看视频 你懂的| 色花堂在线av中文字幕九九| v888av在线观看视频| 最近中文2019年在线看| 国产片免费观看在线观看| 成人激情文学网人妻| 一区二区视频在线观看视频在线| avjpm亚洲伊人久久| 一区二区三区 自拍偷拍| 亚洲精品欧美日韩在线播放| 老师啊太大了啊啊啊尻视频| 国产午夜亚洲精品不卡在线观看| 久久www免费人成一看片| 家庭女教师中文字幕在线播放| 青青社区2国产视频| 超黄超污网站在线观看| 快点插进来操我逼啊视频| 2o22av在线视频| 后入美女人妻高清在线| av乱码一区二区三区| 熟女少妇激情五十路| 2021国产一区二区| 人妻熟女在线一区二区| 亚洲av自拍天堂网| 国产无遮挡裸体免费直播视频| 啪啪啪啪啪啪啪啪啪啪黄色| 一区二区三区蜜臀在线| 天天躁日日躁狠狠躁躁欧美av| av网站色偷偷婷婷网男人的天堂| 日韩av中文在线免费观看| 欧美性感尤物人妻在线免费看| 熟女人妻在线观看视频| 天天射,天天操,天天说| 精品人妻伦一二三区久| 亚洲熟妇x久久av久久| 亚洲男人的天堂a在线| 日本免费视频午夜福利视频| 黄片三级三级三级在线观看| 亚洲av可乐操首页| 社区自拍揄拍尻屁你懂的| 精品久久久久久久久久久a√国产| okirakuhuhu在线观看| 超碰中文字幕免费观看| 白白操白白色在线免费视频| 老司机你懂得福利视频| 国产亚洲视频在线观看| 国产又粗又猛又爽又黄的视频在线| 小穴多水久久精品免费看| 午夜精品在线视频一区| 三级av中文字幕在线观看| 在线免费观看欧美小视频| 国产精品污污污久久| 播放日本一区二区三区电影| 国产使劲操在线播放| 中文字幕1卡1区2区3区| 国产精彩对白一区二区三区| 丝袜国产专区在线观看| 国产午夜激情福利小视频在线| 欧美va不卡视频在线观看| 同居了嫂子在线播高清中文| ka0ri在线视频| 欧美男同性恋69视频| 精品少妇一二三视频在线| 国产三级精品三级在线不卡| 综合页自拍视频在线播放| 绝色少妇高潮3在线观看| 黑人大几巴狂插日本少妇| 护士特殊服务久久久久久久| 97国产在线av精品| 三级等保密码要求条款| 国产视频一区在线观看| 午夜在线观看一区视频| av在线免费资源站| 成年午夜影片国产片| 在线观看的黄色免费网站| 国产亚洲欧美45p| 久久久久久九九99精品| 人妻激情图片视频小说| 欧美中文字幕一区最新网址| 日本午夜福利免费视频| 播放日本一区二区三区电影| 喷水视频在线观看这里只有精品 | 91色九色porny| yellow在线播放av啊啊啊 | 天天干天天操天天扣| 中文字幕之无码色多多| 男人操女人的逼免费视频| 国产亚洲视频在线观看| 亚洲午夜电影在线观看| 少妇被强干到高潮视频在线观看| 精品一区二区三区三区色爱| av视网站在线观看| 免费观看污视频网站| 久久尻中国美女视频| 国产一区二区火爆视频| 日本成人一区二区不卡免费在线| 精品一线二线三线日本| 绯色av蜜臀vs少妇| 亚洲少妇人妻无码精品| 搡老妇人老女人老熟女| 老司机午夜精品视频资源| 国产美女精品福利在线| 热思思国产99re| 一区二区视频视频视频| 熟女91pooyn熟女| 天天操天天干天天插| 天天日天天操天天摸天天舔| 国产一区二区三免费视频| 日日夜夜大香蕉伊人| 91综合久久亚洲综合| 午夜精品亚洲精品五月色| 天天日天天日天天擦| 国产aⅴ一线在线观看| 大香蕉大香蕉大香蕉大香蕉大香蕉| japanese日本熟妇另类| 男人操女人的逼免费视频| 免费男阳茎伸入女阳道视频 | 亚洲av无女神免非久久| av中文字幕福利网| 国产亚洲欧美另类在线观看| 国产精品日韩欧美一区二区| 一区二区三区另类在线| 区一区二区三国产中文字幕| 欧美精产国品一二三产品价格| 亚洲av琪琪男人的天堂| 亚洲一区二区久久久人妻| 91免费观看国产免费| 日辽宁老肥女在线观看视频| 国产精品大陆在线2019不卡| 天天干天天日天天谢综合156| 男人靠女人的逼视频| 2021久久免费视频| 国产精品熟女久久久久浪潮| 社区自拍揄拍尻屁你懂的| 国产乱弄免费视频观看| av一本二本在线观看| 亚洲欧洲av天堂综合| 日本一区美女福利视频| 国产成人无码精品久久久电影| 日韩美女福利视频网| 午夜久久久久久久精品熟女| 亚洲丝袜老师诱惑在线观看| 亚洲欧美一区二区三区电影| 国产中文精品在线观看| 婷婷激情四射在线观看视频| 亚洲国产中文字幕啊啊啊不行了| 亚洲欧美另类自拍偷拍色图| 在线观看免费岛国av| 鸡巴操逼一级黄色气| 偷偷玩弄新婚人妻h视频| 北条麻妃高跟丝袜啪啪| 青青青青青青青青青国产精品视频| 大陆av手机在线观看| 中文字幕av熟女人妻| 大香蕉大香蕉大香蕉大香蕉大香蕉| 欧美一区二区三区激情啪啪啪| 女同性ⅹxx女同hd| 中文字幕av第1页中文字幕| 亚洲国产在人线放午夜| 在线视频这里只有精品自拍| 岛国免费大片在线观看| 青青色国产视频在线| 日韩北条麻妃一区在线| 国产麻豆剧果冻传媒app| 亚洲欧美另类手机在线| 欧美亚洲牲夜夜综合久久| 精品亚洲中文字幕av| 男人的天堂av日韩亚洲| 热思思国产99re| 精品av国产一区二区三区四区| 天天做天天干天天操天天射| 日韩精品啪啪视频一道免费| AV天堂一区二区免费试看| 久久这里有免费精品| 亚洲一区二区三区偷拍女厕91| 日韩欧美亚洲熟女人妻| 欧美专区日韩专区国产专区| 日韩精品电影亚洲一区| 动色av一区二区三区| 久久久极品久久蜜桃| 欧美亚洲偷拍自拍色图| 18禁免费av网站| 亚洲视频乱码在线观看| 亚洲一区二区三区uij| 天天日天天爽天天爽| 日韩欧美高清免费在线| 亚洲精品乱码久久久本| 免费在线看的黄网站| 日本美女性生活一级片| 超污视频在线观看污污污| 精品91自产拍在线观看一区| 亚洲va国产va欧美va在线| 亚洲区欧美区另类最新章节| 日本韩国免费福利精品| 在线观看国产免费麻豆| 人妻凌辱欧美丰满熟妇| 国产老熟女伦老熟妇ⅹ| 国产精品人妻66p| 午夜蜜桃一区二区三区| 亚洲精品色在线观看视频| 午夜毛片不卡免费观看视频 | 在线观看av2025| 欧美一区二区三区乱码在线播放| 亚洲精品一线二线在线观看| 欧美日韩精品永久免费网址| 青青热久免费精品视频在线观看| 亚洲欧美福利在线观看| 新婚人妻聚会被中出| 视频一区二区在线免费播放| 直接能看的国产av| 日本a级视频老女人| 午夜免费体验区在线观看| av日韩在线免费播放| 国产午夜亚洲精品不卡在线观看| 亚洲成人激情视频免费观看了 | 亚洲成a人片777777| 在线视频这里只有精品自拍| 亚洲免费va在线播放| 又色又爽又黄的美女裸体| 五十路av熟女松本翔子| 亚洲一级美女啪啪啪| 免费在线观看视频啪啪| 中文字幕在线视频一区二区三区 | 2020中文字幕在线播放| jiujiure精品视频在线| 国产熟妇乱妇熟色T区| 亚洲激情,偷拍视频| 精品久久久久久高潮| 日韩欧美一级黄片亚洲| 成人午夜电影在线观看 久久| 亚洲成人三级在线播放| 2022国产精品视频| 97人妻人人澡爽人人精品| 粉嫩av蜜乳av蜜臀| 97成人免费在线观看网站| 日韩中文字幕精品淫| 风流唐伯虎电视剧在线观看| 日韩亚洲高清在线观看| 国产日韩欧美美利坚蜜臀懂色| av天堂中文免费在线| 精品区一区二区三区四区人妻| 亚洲中文字幕人妻一区| 成人色综合中文字幕| 九色精品视频在线播放| 国产黑丝高跟鞋视频在线播放| 亚洲高清免费在线观看视频| 亚洲欧美一卡二卡三卡| 色狠狠av线不卡香蕉一区二区| av中文字幕福利网| 亚洲精品乱码久久久久久密桃明| 人人爽亚洲av人人爽av| 91色九色porny| 久久免费看少妇高潮完整版| 美女视频福利免费看| av视网站在线观看| 18禁网站一区二区三区四区| 日本高清撒尿pissing| 国产精品久久9999| 日韩成人性色生活片| 啊啊啊视频试看人妻| 一二三中文乱码亚洲乱码one| 人妻久久无码中文成人| 啪啪啪18禁一区二区三区| 国产在线观看免费人成短视频| 天天射夜夜操狠狠干| 欧美日韩中文字幕欧美| av中文字幕国产在线观看| 精品国产高潮中文字幕| 任你操任你干精品在线视频| 午夜激情久久不卡一区二区| 国产乱子伦一二三区| 精品乱子伦一区二区三区免费播| 最新国产精品拍在线观看| 狠狠躁狠狠爱网站视频| 日韩亚国产欧美三级涩爱| 一二三区在线观看视频| 日韩美女搞黄视频免费| 亚洲一区二区三区五区| 2020韩国午夜女主播在线| 国产变态另类在线观看| 97人妻色免费视频| 91精品国产高清自在线看香蕉网| 大香蕉大香蕉大香蕉大香蕉大香蕉| 在线观看视频一区麻豆| 午夜免费体验区在线观看| 日本丰满熟妇BBXBBXHD| 1000部国产精品成人观看视频| 日韩加勒比东京热二区| 亚洲偷自拍高清视频| 色偷偷伊人大杳蕉综合网| 日韩av有码一区二区三区4| 成人在线欧美日韩国产| 精品一区二区亚洲欧美| 日韩激情文学在线视频| 欧洲国产成人精品91铁牛tv| 亚洲国产免费av一区二区三区 | 国产高清女主播在线| 制丝袜业一区二区三区| 欧美精品一二三视频| 在线观看av观看av| 国产亚州色婷婷久久99精品| 美女大bxxxx内射| 国产免费高清视频视频| 在线观看免费av网址大全| 在线观看的黄色免费网站| 婷婷综合亚洲爱久久| 黄色视频在线观看高清无码| 91精品一区二区三区站长推荐| 亚洲精品国产综合久久久久久久久 | 国产高清精品一区二区三区| 98视频精品在线观看| 2018最新中文字幕在线观看| 亚洲图片欧美校园春色| 国产在线拍揄自揄视频网站| 高潮视频在线快速观看国家快速 | 国产亚洲欧美视频网站| 国产精品久久久久久久久福交| 91桃色成人网络在线观看| 2020久久躁狠狠躁夜夜躁| 色秀欧美视频第一页| av中文字幕网址在线| 日韩特级黄片高清在线看| 在线观看视频 你懂的| 日本阿v视频在线免费观看| 亚洲国产在线精品国偷产拍 | 六月婷婷激情一区二区三区| 操操网操操伊剧情片中文字幕网| 大胆亚洲av日韩av| 日本免费一级黄色录像| 成人综合亚洲欧美一区| 婷婷午夜国产精品久久久| 91麻豆精品秘密入口在线观看| 性欧美激情久久久久久久| 中文字幕高清资源站| 亚洲午夜伦理视频在线 | 风流唐伯虎电视剧在线观看| 国产福利小视频大全| 国产va精品免费观看| 日本特级片中文字幕| 亚洲成人国产综合一区| 亚洲欧美激情人妻偷拍| 国产精品入口麻豆啊啊啊| 亚洲偷自拍高清视频| 久久久久国产成人精品亚洲午夜| 久久免费看少妇高潮完整版| 天天摸天天日天天操| 久久精品36亚洲精品束缚| 老司机99精品视频在线观看| 五十路人妻熟女av一区二区| 五色婷婷综合狠狠爱| 人妻久久无码中文成人| 99热久久这里只有精品8| av中文字幕电影在线看| 亚洲av无码成人精品区辽| 欧美精品一二三视频| 91免费黄片可看视频| 三上悠亚和黑人665番号| 国产一线二线三线的区别在哪| av在线观看网址av| 国产普通话插插视频| 爆乳骚货内射骚货内射在线| 韩国爱爱视频中文字幕| 亚洲天堂精品久久久| 日本熟妇喷水xxx| 免费黄页网站4188| 中文字幕人妻三级在线观看| 自拍偷拍亚洲另类色图| 天天日天天玩天天摸| 美女张开腿让男生操在线看| 久久久久久99国产精品| 狠狠躁狠狠爱网站视频| 色婷婷久久久久swag精品| 国产又粗又硬又大视频| 最新激情中文字幕视频| 黑人进入丰满少妇视频| 黄页网视频在线免费观看| 国产黄色片在线收看| av高潮迭起在线观看| 2022中文字幕在线| caoporn蜜桃视频| 欧美精产国品一二三区| 欧美一区二区三区啪啪同性| 亚洲av成人免费网站| 亚洲欧美综合在线探花| 播放日本一区二区三区电影| 一区二区三区蜜臀在线| 偷拍3456eee| 在线国产精品一区二区三区| 大胸性感美女羞爽操逼毛片| 亚洲一区二区三区久久受| 玖玖一区二区在线观看| 精品黑人一区二区三区久久国产 | 青青青国产片免费观看视频| 黄色片一级美女黄色片| 桃色视频在线观看一区二区| 天天干天天插天天谢| 亚洲va天堂va国产va久| 天天干天天操天天扣| 国产欧美精品免费观看视频| 国产熟妇乱妇熟色T区| 欧亚乱色一区二区三区| 男生舔女生逼逼视频| 亚洲熟女女同志女同| 激情图片日韩欧美人妻| 亚洲日本一区二区三区| 中文字幕午夜免费福利视频| 91片黄在线观看喷潮| 国产精品女邻居小骚货| 99热99这里精品6国产| 夜夜嗨av蜜臀av| 青青青视频手机在线观看| 91she九色精品国产| 天天摸天天亲天天舔天天操天天爽| 国产av国片精品一区二区| 日韩人妻在线视频免费| 精品美女久久久久久| 欧洲日韩亚洲一区二区三区| 亚洲精品午夜aaa久久| 狠狠操操操操操操操操操| 天天插天天色天天日| 人妻熟女在线一区二区| 亚洲av日韩av网站| 亚洲的电影一区二区三区| 午夜福利资源综合激情午夜福利资 | 欧洲日韩亚洲一区二区三区| 婷婷午夜国产精品久久久| 蜜桃专区一区二区在线观看| 色综合久久五月色婷婷综合| 啊慢点鸡巴太大了啊舒服视频| 熟女在线视频一区二区三区| 天天做天天干天天操天天射| 成人午夜电影在线观看 久久| 国产麻豆乱子伦午夜视频观看| 在线观看视频网站麻豆| 少妇人妻100系列| 最新国产精品拍在线观看| 亚洲超碰97人人做人人爱| 91色网站免费在线观看| 视频在线亚洲一区二区| 激情人妻校园春色亚洲欧美| 亚洲另类在线免费观看| 91在线视频在线精品3| 欧美精品 日韩国产| 久久香蕉国产免费天天| 日本性感美女三级视频| 久久艹在线观看视频| 久久久久久97三级| 成年美女黄网站18禁久久| 日韩一个色综合导航| 日本熟妇一区二区x x| 91九色国产porny蝌蚪| 亚洲激情唯美亚洲激情图片| 在线观看视频污一区| 亚洲图片偷拍自拍区| 白白操白白色在线免费视频| 人妻3p真实偷拍一二区| 日本裸体熟妇区二区欧美| 91 亚洲视频在线观看| 国产剧情演绎系列丝袜高跟| 青青青视频自偷自拍38碰| 国产chinesehd精品麻豆| 欧美亚洲中文字幕一区二区三区 | 日比视频老公慢点好舒服啊| 欧美亚洲少妇福利视频| 欧美3p在线观看一区二区三区| 亚洲超碰97人人做人人爱| 亚洲午夜福利中文乱码字幕| 免费成人va在线观看| 啊啊好慢点插舔我逼啊啊啊视频| 亚洲第一伊人天堂网| 色综合色综合色综合色| 视频 国产 精品 熟女 | 欧美成人一二三在线网| 美洲精品一二三产区区别| 人人妻人人爽人人澡人人精品| 久久人人做人人妻人人玩精品vr| 欧美美女人体视频一区| 直接观看免费黄网站| 色婷婷六月亚洲综合香蕉| av天堂资源最新版在线看| 91综合久久亚洲综合| 熟女国产一区亚洲中文字幕| 国产九色91在线观看精品| 国产成人自拍视频播放| 欧洲黄页网免费观看| 51精品视频免费在线观看| 午夜在线精品偷拍一区二| 日韩近亲视频在线观看| 天天日天天操天天摸天天舔| 自拍偷拍亚洲另类色图| 伊人网中文字幕在线视频| 黄色片一级美女黄色片| 日日夜夜大香蕉伊人| 扒开让我视频在线观看| 天天日天天爽天天干| 激情小视频国产在线| 热思思国产99re| 久久香蕉国产免费天天| 天天干天天啪天天舔| 一区二区三区久久久91| 啊啊啊想要被插进去视频| 一区二区三区激情在线| 日本丰满熟妇大屁股久久| 熟女视频一区,二区,三区| av一区二区三区人妻| 久久久久久97三级| 日日夜夜精品一二三| 91成人在线观看免费视频| nagger可以指黑人吗| 黄色成年网站午夜在线观看| 日韩欧美亚洲熟女人妻| 日日夜夜大香蕉伊人| 国产精品污污污久久| 小穴多水久久精品免费看| 91国语爽死我了不卡| 天天操天天干天天日狠狠插| 国产一区二区久久久裸臀| 中文字幕在线视频一区二区三区| 亚洲视频在线观看高清| 自拍偷拍日韩欧美一区二区| 久久精品国产23696| 亚洲免费成人a v| 天天摸天天亲天天舔天天操天天爽| 日韩美女搞黄视频免费| 偷拍自拍亚洲美腿丝袜| 老师啊太大了啊啊啊尻视频| 日韩熟女av天堂系列| 国产日韩精品电影7777| xxx日本hd高清| 99精品免费观看视频| 人人妻人人爽人人添夜| 欧美综合婷婷欧美综合| 大白屁股精品视频国产| 在线不卡日韩视频播放| 无忧传媒在线观看视频| 欧洲日韩亚洲一区二区三区 | 啊啊好慢点插舔我逼啊啊啊视频| 亚洲成人午夜电影在线观看| 女警官打开双腿沦为性奴| 日本女大学生的黄色小视频| 亚洲熟妇无码一区二区三区| 一区二区三区在线视频福利| 日本人妻少妇18—xx| 中文字幕乱码av资源| 亚洲视频在线观看高清| 久久精品久久精品亚洲人| 啪啪啪啪啪啪啪啪啪啪黄色| 干逼又爽又黄又免费的视频| 88成人免费av网站| 国产91嫩草久久成人在线视频| 中国黄色av一级片| 青青青aaaa免费| 日韩成人性色生活片| 国产又大又黄免费观看| 亚洲精品午夜久久久久| 亚洲国产成人在线一区| av在线播放国产不卡| 国产亚洲国产av网站在线| 亚洲1卡2卡三卡4卡在线观看| 午夜精品福利一区二区三区p | 中国黄色av一级片| 国产成人一区二区三区电影网站| 日韩精品中文字幕在线| 日本熟妇丰满厨房55| 亚洲欧洲一区二区在线观看| 91传媒一区二区三区| 中文字幕人妻一区二区视频 | 11久久久久久久久久久| 久久艹在线观看视频| 97人妻人人澡爽人人精品| 亚洲 清纯 国产com| 一区二区三区视频,福利一区二区 丰满的子国产在线观看 | 男女啪啪视频免费在线观看 | 中文字幕之无码色多多| 香蕉av影视在线观看| 骚逼被大屌狂草视频免费看| 精品日产卡一卡二卡国色天香 | 成人久久精品一区二区三区| 青青青青操在线观看免费| 亚洲av日韩高清hd| 国产精品久久综合久久| 午夜精品久久久久久99热| 日韩精品二区一区久久| 1区2区3区4区视频在线观看| 大鸡巴后入爆操大屁股美女| 动漫美女的小穴视频| 91福利在线视频免费观看| 中文人妻AV久久人妻水| 精品一区二区亚洲欧美| 日本丰满熟妇BBXBBXHD| 日韩一区二区电国产精品| 亚洲伊人色一综合网| 天堂av狠狠操蜜桃| 快点插进来操我逼啊视频| 成人精品视频99第一页| 久久久久久久99精品| 日韩精品二区一区久久| 天天躁夜夜躁日日躁a麻豆| 国产精品大陆在线2019不卡 | 黄色片一级美女黄色片| 青青青青青青青在线播放视频 | 国产亚洲欧美视频网站| 国产黄色a级三级三级三级| 老司机在线精品福利视频| 午夜青青草原网在线观看| 日日爽天天干夜夜操| 激情五月婷婷综合色啪| 大鸡吧插逼逼视频免费看 | 早川濑里奈av黑人番号| 又粗又硬又猛又爽又黄的| 国产精彩对白一区二区三区 | 日韩美女福利视频网| 国产精品入口麻豆啊啊啊| 做爰视频毛片下载蜜桃视频1 | 天天干夜夜操啊啊啊| 人人妻人人爱人人草| brazzers欧熟精品系列| 青青青青青青青青青青草青青 | 99热久久这里只有精品8| 动漫黑丝美女的鸡巴| 亚洲少妇高潮免费观看| 成人在线欧美日韩国产| 国产av福利网址大全| 亚洲av成人免费网站| 五十路丰满人妻熟妇| 啪啪啪啪啪啪啪啪av| 亚洲成人激情av在线| 亚洲中文字幕人妻一区| 日韩视频一区二区免费观看| 日本丰满熟妇BBXBBXHD| 国产在线自在拍91国语自产精品| 青青青青在线视频免费观看| 午夜免费观看精品视频| 色综合久久久久久久久中文| 亚洲激情唯美亚洲激情图片| 精品日产卡一卡二卡国色天香| 欧美80老妇人性视频| 一区二区三区的久久的蜜桃的视频| 国产精选一区在线播放| 欧美性感尤物人妻在线免费看| 污污小视频91在线观看| 亚洲最大黄 嗯色 操 啊| 天天操天天干天天艹| 久碰精品少妇中文字幕av| 91麻豆精品久久久久| 熟女91pooyn熟女| 人人爽亚洲av人人爽av| 东京热男人的av天堂| 晚上一个人看操B片| 一区二区三区视频,福利一区二区 丰满的子国产在线观看 | 97色视频在线观看| 日韩加勒比东京热二区| 男人操女人逼逼视频网站| 亚洲精品午夜aaa久久| 欧美色呦呦最新网址| 国产黑丝高跟鞋视频在线播放| 精品国产在线手机在线| 在线观看免费视频网| 中出中文字幕在线观看| 哥哥姐姐综合激情小说| 看一级特黄a大片日本片黑人| 18禁无翼鸟成人在线| 少妇与子乱在线观看| 啪啪啪啪啪啪啪啪av| 亚洲少妇高潮免费观看| 老司机深夜免费福利视频在线观看| 最新欧美一二三视频| 亚洲国产成人无码麻豆艾秋| 性欧美激情久久久久久久| 偷拍自拍国产在线视频| 欧美第一页在线免费观看视频| 在线免费视频 自拍| 91小伙伴中女熟女高潮| 狍和女人的王色毛片| 91国产资源在线视频| 日本少妇的秘密免费视频| 国产va精品免费观看| 国产精品视频资源在线播放 | 亚洲精品福利网站图片| 97超碰人人搞人人| 亚洲福利精品福利精品福利| 91精品国产91久久自产久强| 精品一区二区三区在线观看| 亚洲欧美自拍另类图片| 少妇人妻100系列| 久久久精品欧洲亚洲av| 人妻少妇亚洲精品中文字幕| 2018最新中文字幕在线观看| 亚洲高清免费在线观看视频| 日韩人妻xxxxx| 人妻少妇av在线观看| 日本a级视频老女人| 男人天堂av天天操| 亚洲福利精品视频在线免费观看| 久久久精品国产亚洲AV一| 欧美香蕉人妻精品一区二区| 99国产精品窥熟女精品| 91大神福利视频网| 韩国AV无码不卡在线播放| 国语对白xxxx乱大交| 天天射夜夜操综合网| 中文字幕日韩精品日本| 成人sm视频在线观看| 都市家庭人妻激情自拍视频| 人妻久久久精品69系列| 11久久久久久久久久久| av高潮迭起在线观看| 狠狠的往里顶撞h百合| 中英文字幕av一区| 男人靠女人的逼视频| 亚洲一区二区三区精品视频在线| 久久永久免费精品人妻专区 | 国产性感美女福利视频| 91精品免费久久久久久| 天堂女人av一区二区| 日本韩国免费一区二区三区视频 | 亚洲日产av一区二区在线| 国产97视频在线精品| 99热久久极品热亚洲| 中文字幕+中文字幕| 日本裸体熟妇区二区欧美| 动漫精品视频在线观看| 中文字幕亚洲中文字幕| 亚洲av色图18p| 99国内小视频在现欢看| 久久永久免费精品人妻专区| 男人操女人的逼免费视频| 婷婷色中文亚洲网68| 男女啪啪视频免费在线观看| 国产男女视频在线播放| 端庄人妻堕落挣扎沉沦| 国产麻豆国语对白露脸剧情| 精品久久婷婷免费视频| 免费手机黄页网址大全| 色呦呦视频在线观看视频| 青青青国产免费视频| 高潮视频在线快速观看国家快速| 天天摸天天日天天操| 在线免费观看国产精品黄色| 精品久久久久久久久久久99| 日本特级片中文字幕| 亚洲综合一区二区精品久久| 18禁精品网站久久| 免费69视频在线看| 日本少妇在线视频大香蕉在线观看| 班长撕开乳罩揉我胸好爽| www天堂在线久久| 女警官打开双腿沦为性奴| 欧美一区二区三区久久久aaa| 97精品综合久久在线| 人妻凌辱欧美丰满熟妇| 国产伦精品一区二区三区竹菊| 伊拉克及约旦宣布关闭领空| 中文字幕一区二 区二三区四区| 超pen在线观看视频公开97| 国产精品久久久久网| 最后99天全集在线观看| 亚洲少妇人妻无码精品| 97超碰免费在线视频| 免费看美女脱光衣服的视频| 亚洲狠狠婷婷综合久久app| 激情小视频国产在线| 午夜久久久久久久99| 精品亚洲在线免费观看| 日韩欧美在线观看不卡一区二区| nagger可以指黑人吗| 亚洲国产精品中文字幕网站| 视频啪啪啪免费观看| 亚洲精品在线资源站| 精品黑人一区二区三区久久国产| 日韩人妻丝袜中文字幕| 男女啪啪啪啪啪的网站| 成年人该看的视频黄免费| 亚洲男人在线天堂网| 中文字幕高清免费在线人妻| 国产日韩欧美美利坚蜜臀懂色| 亚洲精品色在线观看视频| 国产精品视频一区在线播放| 老鸭窝日韩精品视频观看| 国产在线91观看免费观看| 亚洲中文字幕乱码区| 成人在线欧美日韩国产| 精内国产乱码久久久久久| 玩弄人妻熟妇性色av少妇| 精品成人啪啪18免费蜜臀| 国产自拍黄片在线观看| 国产午夜无码福利在线看| 精品高潮呻吟久久av| 黑人进入丰满少妇视频| 密臀av一区在线观看| japanese五十路熟女熟妇| 免费在线播放a级片| 91欧美在线免费观看| 国产精品久久久久久久久福交| 亚洲变态另类色图天堂网| 福利视频网久久91| 黄色中文字幕在线播放| 岛国青草视频在线观看| 日本韩国免费福利精品| 91天堂天天日天天操| 一区二区麻豆传媒黄片| 少妇高潮一区二区三区| 天干天天天色天天日天天射| 在线观看911精品国产| 天天干天天操天天插天天日| 五月色婷婷综合开心网4438| 91中文字幕免费在线观看| 亚洲一区二区激情在线| 做爰视频毛片下载蜜桃视频1| 2012中文字幕在线高清| 大屁股肉感人妻中文字幕在线| 91欧美在线免费观看| 日韩特级黄片高清在线看| 日本韩国免费福利精品| 专门看国产熟妇的网站| av中文字幕在线导航| 亚洲天天干 夜夜操| 国产日韩精品免费在线| 99精品国产自在现线观看| av网址在线播放大全| 大香蕉大香蕉在线有码 av| 精品国产高潮中文字幕| 不戴胸罩引我诱的隔壁的人妻| 免费十精品十国产网站| 美女张开两腿让男人桶av| 亚洲免费福利一区二区三区| 天天日天天日天天擦| 不卡一不卡二不卡三| 国产熟妇乱妇熟色T区| 欧洲国产成人精品91铁牛tv| 人人妻人人爱人人草| yy96视频在线观看| av天堂加勒比在线| 一区二区视频在线观看免费观看| 久久久久久性虐视频| 国产精品一区二区三区蜜臀av | 888欧美视频在线| 人妻丝袜精品中文字幕| 欧美精品国产综合久久| 一个色综合男人天堂| 中文字幕一区二区亚洲一区| 人妻丝袜精品中文字幕| 999久久久久999| 日本一二三区不卡无| 国产精品久久久久久美女校花| 人妻丝袜av在线播放网址| 18禁美女黄网站色大片下载| 国产精品sm调教视频| 亚洲综合在线观看免费| 日韩欧美国产一区不卡| 亚洲 中文 自拍 另类 欧美| 亚洲一级 片内射视正片| 啊啊好大好爽啊啊操我啊啊视频 | 18禁美女黄网站色大片下载| 亚洲免费视频欧洲免费视频| 欧美男同性恋69视频| 日韩欧美在线观看不卡一区二区| 天天干天天操天天扣| 偷拍自拍福利视频在线观看| 经典国语激情内射视频| 视频 一区二区在线观看| 亚洲欧美自拍另类图片| 亚洲av第国产精品| 在线观看av亚洲情色| 性生活第二下硬不起来| 一区二区视频在线观看免费观看 | 9久在线视频只有精品| 国产成人自拍视频播放| 亚洲av可乐操首页| 亚洲av日韩精品久久久| 天天干天天操天天扣| 欧美亚洲自偷自拍 在线| 日本少妇的秘密免费视频| 91亚洲手机在线视频播放| 国产1区,2区,3区| 日本性感美女三级视频| 狠狠操操操操操操操操操| 午夜dv内射一区区| 欧美第一页在线免费观看视频| 久久99久久99精品影院| 日本脱亚入欧是指什么| 成人区人妻精品一区二视频| 国产又粗又黄又硬又爽| 午夜av一区二区三区| 制服丝袜在线人妻中文字幕| 欧美日本在线视频一区| 天天日天天干天天要| 大鸡巴后入爆操大屁股美女| 又大又湿又爽又紧A视频| 区一区二区三国产中文字幕| 18禁免费av网站| 亚洲欧美精品综合图片小说| 欧洲日韩亚洲一区二区三区| 真实国模和老外性视频| 又大又湿又爽又紧A视频| 人妻丝袜av在线播放网址| 中文字日产幕乱六区蜜桃| 超黄超污网站在线观看| 欧美特色aaa大片| 国产亚州色婷婷久久99精品| 国产va在线观看精品| 国产一区二区火爆视频| 夫妻在线观看视频91| 日本一区精品视频在线观看| 日韩av中文在线免费观看| 中文字幕在线一区精品| 国产视频精品资源网站| 国产欧美精品不卡在线| 免费观看成年人视频在线观看| 亚洲va国产va欧美va在线| 1000部国产精品成人观看视频| 欧美性感尤物人妻在线免费看| 天天日天天透天天操| 午夜激情精品福利视频| 99热久久这里只有精品| 久久久久五月天丁香社区| 黄工厂精品视频在线观看 | 黄片色呦呦视频免费看| 国产伦精品一区二区三区竹菊| 5528327男人天堂| 日韩精品啪啪视频一道免费| 欧美精产国品一二三产品价格| 97少妇精品在线观看| 日本乱人一区二区三区| 日韩三级黄色片网站| 91精品资源免费观看| 最新激情中文字幕视频| 中文字幕av一区在线观看| 精品高潮呻吟久久av| 成人激情文学网人妻| 欧美亚洲偷拍自拍色图| 黑人借宿ntr人妻的沦陷2| 五十路熟女人妻一区二| 午夜激情久久不卡一区二区| 99热99re在线播放| 国产中文精品在线观看| av乱码一区二区三区| 熟妇一区二区三区高清版| 人人超碰国字幕观看97| 亚洲老熟妇日本老妇| 天天日天天鲁天天操| 国产中文字幕四区在线观看| 国产日韩一区二区在线看 | 人妻av无码专区久久绿巨人| 国产大鸡巴大鸡巴操小骚逼小骚逼| 老司机你懂得福利视频| 日韩亚国产欧美三级涩爱| 激情小视频国产在线| 亚洲精品久久视频婷婷| 又粗又硬又猛又爽又黄的| 视频在线亚洲一区二区| 一区二区免费高清黄色视频| 日本韩国在线观看一区二区| 色吉吉影音天天干天天操| 92福利视频午夜1000看| 久久久久久97三级| 亚洲欧美福利在线观看| 天天操夜夜操天天操天天操| 人人妻人人人操人人人爽| 污污小视频91在线观看| 丰满的继坶3中文在线观看| 免费黄页网站4188| 福利一二三在线视频观看| 精品人妻伦一二三区久| 中文字幕午夜免费福利视频| 老司机福利精品免费视频一区二区 | 成人精品视频99第一页| 视频在线亚洲一区二区| 偷拍自拍亚洲美腿丝袜| 亚洲天堂av最新网址| 欧美精品一二三视频| av中文字幕在线观看第三页| 少妇高潮无套内谢麻豆| 亚洲精品国品乱码久久久久| 青娱乐蜜桃臀av色| 天天干夜夜操啊啊啊| 日本丰满熟妇大屁股久久| 日本午夜福利免费视频| 97精品综合久久在线| 人妻另类专区欧美制服| 成人av天堂丝袜在线观看| 99热久久这里只有精品| 91精品国产91青青碰| 中文字幕1卡1区2区3区| 午夜频道成人在线91| 国产乱子伦精品视频潮优女| 午夜久久久久久久精品熟女| 2021国产一区二区| 日韩成人免费电影二区| 超级av免费观看一区二区三区| 美女av色播在线播放| 99视频精品全部15| 中文字幕在线观看极品视频| 日韩激情文学在线视频| 天天射夜夜操狠狠干| 日本高清成人一区二区三区| 精品国产亚洲av一淫| 在线观看免费视频色97| 99精品一区二区三区的区| 色综合久久无码中文字幕波多| 午夜美女少妇福利视频| 区一区二区三国产中文字幕| 中文字幕无码一区二区免费| 66久久久久久久久久久| 91色九色porny| 色97视频在线播放| 午夜激情精品福利视频| 人妻自拍视频中国大陆| 欧美xxx成人在线| 日美女屁股黄邑视频| 视频在线亚洲一区二区| 黄色三级网站免费下载| 视频在线亚洲一区二区| 国产美女午夜福利久久| 大胆亚洲av日韩av| 国产伊人免费在线播放| 任你操任你干精品在线视频| 欧美va亚洲va天堂va| 亚洲成人三级在线播放| 男生舔女生逼逼的视频| 性欧美激情久久久久久久| 日本男女操逼视频免费看| 亚洲在线一区二区欧美| 美女张开两腿让男人桶av| 制丝袜业一区二区三区| 成人性黑人一级av| 亚洲Av无码国产综合色区| 97成人免费在线观看网站| 亚洲综合在线视频可播放| 香港三日本三韩国三欧美三级| 2022精品久久久久久中文字幕| 亚洲第17页国产精品| 午夜激情高清在线观看| yy6080国产在线视频| 国产av福利网址大全| 一区二区三区四区中文| 美女av色播在线播放| 韩国黄色一级二级三级| 97资源人妻免费在线视频| 国产女人露脸高潮对白视频 | 动漫av网站18禁| 中文字幕在线视频一区二区三区| 午夜久久久久久久99| 成人性黑人一级av| 97人妻夜夜爽二区欧美极品| yy96视频在线观看| 77久久久久国产精产品| 涩涩的视频在线观看视频| 国产成人一区二区三区电影网站 | 青青草原网站在线观看| 插小穴高清无码中文字幕| 亚洲中文字幕国产日韩| 偷拍美女一区二区三区| 免费看国产又粗又猛又爽又黄视频| 国产又粗又猛又爽又黄的视频美国| 欧美成人综合色在线噜噜| 亚洲国产欧美一区二区三区久久| 亚洲av香蕉一区区二区三区犇| 91国产资源在线视频| 狠狠鲁狠狠操天天晚上干干| www天堂在线久久| 老司机免费福利视频网| www天堂在线久久| 精品首页在线观看视频| 91av中文视频在线| 日韩中文字幕在线播放第二页 | 激情图片日韩欧美人妻| 国产视频精品资源网站| 日本五十路熟新垣里子| 久久久久久久99精品| 免费国产性生活视频| 少妇高潮一区二区三区| 中国无遮挡白丝袜二区精品| 黄色在线观看免费观看在线| 久久精品亚洲国产av香蕉| 美女福利写真在线观看视频| 亚洲欧美久久久久久久久| 五十路熟女av天堂| av网址在线播放大全| 75国产综合在线视频| 中文字幕av第1页中文字幕| 午夜场射精嗯嗯啊啊视频| 好吊视频—区二区三区| 欧亚乱色一区二区三区| 精品久久久久久高潮| av在线免费资源站| 欧美视频一区免费在线| 亚洲精品乱码久久久本| 亚洲另类伦春色综合小| 大鸡吧插逼逼视频免费看| 自拍 日韩 欧美激情| 亚洲va国产va欧美va在线| 日韩亚洲高清在线观看| 一级黄色片夫妻性生活| 97超碰免费在线视频| 亚洲精品成人网久久久久久小说| 成人性黑人一级av| www天堂在线久久| 80电影天堂网官网| 中文字幕在线观看国产片| 日本裸体熟妇区二区欧美| 五月天久久激情视频| 国产美女午夜福利久久| 亚洲中文精品人人免费| 国产亚洲欧美另类在线观看| 亚洲福利精品视频在线免费观看| 亚洲av成人网在线观看| 四川五十路熟女av| 蜜臀av久久久久久久| 福利在线视频网址导航| 日韩人妻丝袜中文字幕| 超碰97人人做人人爱| 老司机深夜免费福利视频在线观看| 91精品国产麻豆国产| 免费无码人妻日韩精品一区二区| av在线资源中文字幕| av亚洲中文天堂字幕网| 国产激情av网站在线观看| 黑人进入丰满少妇视频| 欧美怡红院视频在线观看| 日韩精品电影亚洲一区| 国产精品中文av在线播放| 天天日天天天天天天天天天天| 91人妻精品一区二区在线看| 中文字幕日韩人妻在线三区| 欧美精品伦理三区四区| 自拍偷拍日韩欧美一区二区| 色吉吉影音天天干天天操| 国产男女视频在线播放| 99av国产精品欲麻豆| 日韩中文字幕精品淫| 在线观看视频网站麻豆| 欧美男人大鸡吧插女人视频| 美女福利视频导航网站| 一二三区在线观看视频| 国产三级精品三级在线不卡| 任你操视频免费在线观看| 噜噜色噜噜噜久色超碰| 国产不卡av在线免费| 夜色17s精品人妻熟女| 人人爱人人妻人人澡39| 中文字幕一区二区三区蜜月| 97成人免费在线观看网站| 国产中文精品在线观看| 免费看高清av的网站| 大白屁股精品视频国产| av大全在线播放免费| 免费在线看的黄网站| 午夜的视频在线观看| 在线观看一区二区三级| 五十路丰满人妻熟妇| 日本精品美女在线观看| 午夜精品一区二区三区更新| 老熟妇xxxhd老熟女| 美女少妇亚洲精选av| 欧美专区日韩专区国产专区| 国产黄色高清资源在线免费观看| 91久久精品色伊人6882| 亚洲 清纯 国产com| 国产在线91观看免费观看| 2019av在线视频| 亚洲特黄aaaa片| 亚洲av极品精品在线观看| 亚洲最大黄了色网站| 91久久人澡人人添人人爽乱| 欧美专区第八页一区在线播放| 国产使劲操在线播放| 欧美精品国产综合久久| 人妻熟女中文字幕aⅴ在线| 欧美黄片精彩在线免费观看| 青青草视频手机免费在线观看| 人妻另类专区欧美制服| 亚洲精品一线二线在线观看| 欧美在线一二三视频| 91色网站免费在线观看| 99久久超碰人妻国产| 超级碰碰在线视频免费观看| 五十路老熟女码av| 男女啪啪视频免费在线观看 | 激情伦理欧美日韩中文字幕| 中文字幕av熟女人妻| 综合国产成人在线观看| 97人妻无码AV碰碰视频| 人妻少妇性色欲欧美日韩| 男生舔女生逼逼视频| 日本免费一级黄色录像| 亚洲欧美激情国产综合久久久| 国产妇女自拍区在线观看 | 青青色国产视频在线| 中文字幕人妻被公上司喝醉在线| 中国黄片视频一区91| 91she九色精品国产| 97人人模人人爽人人喊| 天天干天天操天天摸天天射| 91精品国产综合久久久蜜| 三级等保密码要求条款| 成年午夜影片国产片| 亚洲精品欧美日韩在线播放| 国产精品自拍视频大全| 中文字幕人妻三级在线观看| 美女福利视频导航网站| 日韩少妇人妻精品无码专区| 欧美爆乳肉感大码在线观看| 93人妻人人揉人人澡人人| heyzo蜜桃熟女人妻| 国产精品一二三不卡带免费视频| 男人和女人激情视频| 中文字幕一区二区自拍| 人妻自拍视频中国大陆| 天天干天天操天天玩天天射| 国产清纯美女al在线| 国产午夜福利av导航| 欧美精品黑人性xxxx| 动漫av网站18禁| 福利视频一区二区三区筱慧| 超pen在线观看视频公开97| 亚洲福利精品福利精品福利| 欧美精品亚洲精品日韩在线| 国产亚洲精品欧洲在线观看| 久久精品国产23696| 玩弄人妻熟妇性色av少妇| 天天操天天弄天天射| 2022天天干天天操| 中文字幕日本人妻中出| 人人在线视频一区二区| 免费岛国喷水视频在线观看 | 色爱av一区二区三区| 欧美男同性恋69视频| 日韩欧美国产一区不卡| 精品一区二区亚洲欧美| 亚洲自拍偷拍精品网| 国产在线观看免费人成短视频| 亚洲精品午夜久久久久| 一色桃子人妻一区二区三区| 无码中文字幕波多野不卡| 在线观看操大逼视频| 国产成人精品亚洲男人的天堂| 亚洲区美熟妇久久久久| 成人高清在线观看视频| 一区二区三区毛片国产一区| 欧美一区二区三区啪啪同性| 无码日韩人妻精品久久| 黄色三级网站免费下载| 久久精品美女免费视频| 丝袜肉丝一区二区三区四区在线 | 亚洲va国产va欧美va在线| 国产伦精品一区二区三区竹菊| 久久精品亚洲国产av香蕉| 亚洲一区二区人妻av| av老司机亚洲一区二区| 中文字幕在线第一页成人| 天天日天天干天天插舔舔| 国产日本精品久久久久久久| 亚洲av日韩高清hd| 大鸡巴操b视频在线| 狍和女人的王色毛片| 91九色国产porny蝌蚪| 99国产精品窥熟女精品| 日本熟妇一区二区x x| 中文字幕视频一区二区在线观看| 93精品视频在线观看| 91在线视频在线精品3| 国产精品国产三级国产精东 | 91免费黄片可看视频| 女人精品内射国产99| 亚欧在线视频你懂的| 欧美黄片精彩在线免费观看| 91片黄在线观看喷潮| 成人高潮aa毛片免费| rct470中文字幕在线| 国内资源最丰富的网站| 亚洲一区二区三区偷拍女厕91| 又大又湿又爽又紧A视频| 精彩视频99免费在线| 日本免费午夜视频网站| 老司机福利精品免费视频一区二区| 欧美男人大鸡吧插女人视频| 97国产福利小视频合集| 又粗又长 明星操逼小视频 | 午夜频道成人在线91| 天天日天天做天天日天天做| 天天日天天日天天擦| 四川乱子伦视频国产vip| 激情人妻校园春色亚洲欧美| 免费看美女脱光衣服的视频| 国产janese在线播放| 日韩近亲视频在线观看| 福利国产视频在线观看| 日韩中文字幕在线播放第二页| 天天日天天透天天操| 欧美一区二区三区激情啪啪啪| 国产女人叫床高潮大片视频| 日本一本午夜在线播放| 2022精品久久久久久中文字幕| 热久久只有这里有精品| 日日操综合成人av| 亚洲日本一区二区久久久精品| 91免费观看在线网站| 99精品视频在线观看婷婷| 国语对白xxxx乱大交| 成人sm视频在线观看| 毛片av在线免费看| 宅男噜噜噜666免费观看| 亚洲男人的天堂a在线| 五月婷婷在线观看视频免费| 欧洲亚洲欧美日韩综合| 久久免费看少妇高潮完整版| 麻豆性色视频在线观看| 青青色国产视频在线| 亚洲精品福利网站图片| h国产小视频福利在线观看| 日曰摸日日碰夜夜爽歪歪| 亚洲精品国产综合久久久久久久久| 中国视频一区二区三区| 国产刺激激情美女网站| aⅴ五十路av熟女中出| 91中文字幕最新合集| 韩国亚洲欧美超一级在线播放视频| 天天日夜夜干天天操| 99热国产精品666| 免费在线看的黄网站| 亚洲中文字幕国产日韩| 亚洲老熟妇日本老妇| 亚洲av天堂在线播放| 天天射夜夜操狠狠干| 欧美日韩高清午夜蜜桃大香蕉| 中国产一级黄片免费视频播放| 摧残蹂躏av一二三区| 欧美老妇精品另类不卡片| 精品日产卡一卡二卡国色天香| 2012中文字幕在线高清| 日本欧美视频在线观看三区| 欧美日韩国产一区二区三区三州 | 国产97在线视频观看| 男人天堂最新地址av| 成人蜜臀午夜久久一区| 激情色图一区二区三区| 国产亚洲国产av网站在线| 视频在线免费观看你懂得| 亚洲av午夜免费观看| 中文字幕一区二区自拍| 自拍偷拍亚洲精品第2页| 欧美精品资源在线观看| 国产精品污污污久久| 欧美黑人性猛交xxxxⅹooo| 午夜精品在线视频一区| 亚洲精品国品乱码久久久久| 极品性荡少妇一区二区色欲| 亚洲天堂av最新网址| 五十路在线观看完整版| japanese五十路熟女熟妇| 少妇人妻久久久久视频黄片| 精彩视频99免费在线| 91久久精品色伊人6882| 91试看福利一分钟| 亚洲欧美色一区二区| 动漫美女的小穴视频| 老熟妇凹凸淫老妇女av在线观看| 少妇人妻久久久久视频黄片| 日本在线一区二区不卡视频| 亚洲综合色在线免费观看| 亚洲国产40页第21页| aiss午夜免费视频| 亚洲成人熟妇一区二区三区| 80电影天堂网官网| 天天干天天操天天玩天天射| 只有精品亚洲视频在线观看| 人妻丰满熟妇综合网| 又色又爽又黄的美女裸体| 91国内精品久久久久精品一| 适合午夜一个人看的视频| 成年人黄视频在线观看| 精品久久久久久久久久中文蒉 | 自拍 日韩 欧美激情| 精品国产亚洲av一淫| 国产精品中文av在线播放| 在线视频国产欧美日韩| 人人妻人人爱人人草| 男女啪啪啪啪啪的网站| 国产在线拍揄自揄视频网站| 在线视频免费观看网| 在线免费观看国产精品黄色| 亚洲 清纯 国产com| 91老师蜜桃臀大屁股| 国际av大片在线免费观看| 十八禁在线观看地址免费| 亚洲一级美女啪啪啪| 国产午夜福利av导航| 日韩三级电影华丽的外出| 亚洲精品午夜久久久久| 99热99这里精品6国产| 欧美色婷婷综合在线| 绝色少妇高潮3在线观看| 国产三级影院在线观看| 亚洲嫩模一区二区三区| 亚洲一级av大片免费观看| 亚洲国产在线精品国偷产拍| 亚洲精品欧美日韩在线播放| 天天操,天天干,天天射| 亚洲高清国产拍青青草原| 亚洲国产欧美一区二区丝袜黑人| 国产真实灌醉下药美女av福利| 精品国产午夜视频一区二区| 欧美成人黄片一区二区三区| 欧美精品久久久久久影院| 日韩特级黄片高清在线看| 人妻爱爱 中文字幕| 免费观看污视频网站| 九色精品视频在线播放| 一区二区三区四区视频在线播放| 久久久久91精品推荐99| 91精品综合久久久久3d动漫| 丰满少妇翘臀后进式| 1024久久国产精品| 老熟妇xxxhd老熟女| 亚洲另类综合一区小说| 欧美日韩一区二区电影在线观看| 99热99这里精品6国产| 大香蕉大香蕉在线有码 av| 国产精品三级三级三级| 偷拍自拍视频图片免费| 天天躁日日躁狠狠躁av麻豆| 社区自拍揄拍尻屁你懂的| 日韩欧美一级精品在线观看| 2019av在线视频| 久碰精品少妇中文字幕av| 中文字幕一区二区人妻电影冢本| 国产不卡av在线免费| 人人妻人人爽人人添夜| caoporm超碰国产| 欧美黑人性猛交xxxxⅹooo| 天堂女人av一区二区| 非洲黑人一级特黄片| 亚洲一区二区三区五区| 红桃av成人在线观看| 久久尻中国美女视频| 欧美一区二区三区啪啪同性| 欧洲黄页网免费观看| 欧美精品 日韩国产| 免费观看丰满少妇做受| 天天日天天敢天天干| 久久精品亚洲成在人线a| av中文字幕在线导航| 天天做天天爽夜夜做少妇| 亚洲欧美成人综合视频| 国产精品成久久久久三级蜜臀av| 男人插女人视频网站| 天天操天天射天天操天天天| 二区中出在线观看老师| 在线播放一区二区三区Av无码| 3344免费偷拍视频| 80电影天堂网官网| 亚洲一区二区久久久人妻| 2o22av在线视频| 国产内射中出在线观看| av天堂加勒比在线| 黄页网视频在线免费观看| 热99re69精品8在线播放| 天天干天天搞天天摸| 天美传媒mv视频在线观看| 98视频精品在线观看| 伊人成人在线综合网| 丝袜肉丝一区二区三区四区在线看| 人妻久久久精品69系列| 2021年国产精品自拍| 好吊视频—区二区三区| 人人妻人人爽人人添夜| 激情五月婷婷综合色啪| 日本韩国亚洲综合日韩欧美国产 | av完全免费在线观看av| 亚洲国产在线精品国偷产拍| 在线观看av亚洲情色| 日本av在线一区二区三区| 黄工厂精品视频在线观看 | 欧美一级片免费在线成人观看| 中文字日产幕乱六区蜜桃| 亚洲人妻视频在线网| av天堂中文字幕最新| 中文字幕+中文字幕| 天堂女人av一区二区| av中文字幕在线观看第三页| 999九九久久久精品| 日本一区二区三区免费小视频| 啊啊啊想要被插进去视频| 欧美乱妇无乱码一区二区| 国产精品久久9999| 欧美中国日韩久久精品| 青青草原网站在线观看| 无码国产精品一区二区高潮久久4| 国产精品视频一区在线播放| 亚洲高清国产一区二区三区| 色综合色综合色综合色| 日韩精品一区二区三区在线播放| 在线免费观看国产精品黄色| 成人性黑人一级av| 青青青青草手机在线视频免费看| 在线免费视频 自拍| 天堂女人av一区二区| 亚洲成人熟妇一区二区三区 | 亚洲区欧美区另类最新章节| 天美传媒mv视频在线观看| 少妇人妻真实精品视频| 欧美乱妇无乱码一区二区| 国产日韩精品一二三区久久久| 老有所依在线观看完整版| 天天日天天鲁天天操| 天天色天天舔天天射天天爽| 97精品综合久久在线| 在线网站你懂得老司机| 国产美女午夜福利久久| 小穴多水久久精品免费看| 亚洲熟妇无码一区二区三区| 日韩成人综艺在线播放| 蜜臀成人av在线播放| 五十路av熟女松本翔子| 亚洲粉嫩av一区二区三区| 天堂女人av一区二区| 午夜精品一区二区三区更新| 成人av中文字幕一区| 国产日韩欧美视频在线导航|