3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java集合详解(超详细)

發布時間:2023/12/9 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java集合详解(超详细) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java集合詳解(超詳細)

  • 一、集合框架的概述
  • 二、Collection接口
    • (一)Collection接口常用方法
    • (二)Iterator迭代器接口
    • (三)JDK 5.0新特性--增強for循環:(foreach循環)
  • 三、Collection子接口:List接口
    • (一)List接口概述
    • (二)List接口常用方法
    • (三)實現類之一:ArrayList
    • (四)實現類之一:LinkedList
    • (五)實現類之一:Vector
  • 四、Collection子接口:Set接口
    • (一)概述
    • (二)Set接口常用方法
    • (三)實現類之一:HashSet
    • (四)實現類之一:LinkedHashSet
    • (五)實現類之一:TreeSet
  • 五、Map接口
    • (一)概述
    • (二)Map接口常用方法
    • (三)實現類之一:HashMap
    • (四)實現類之一:LinkedHashMap
    • (五)實現類之一:TreeMap
    • (六)使用Properties讀取配置文件
  • 六、Collections工具類的使用
  • 七、面試題

一、集合框架的概述

  • 集合與數組存儲數據概述:
  • 集合、數組都是對多個數據進行存儲操作的結構,簡稱Java容器。 說明:此時的存儲,主要指的是內存層面的存儲,不涉及到持久化的存儲(.txt,.jpg,.avi,數據庫中)

  • 數組存儲的特點:
  • 一旦初始化以后,其長度就確定了。
    數組一旦定義好,其元素的類型也就確定了。我們也就只能操作指定類型的數據了。

  • 數組存儲的弊端:
  • 1.一旦初始化以后,其長度就不可修改。
    2.數組中提供的方法非常限,對于添加、刪除、插入數據等操作,非常不便,同時效率不高。
    3.獲取數組中實際元素的個數的需求,數組沒有現成的屬性或方法可用
    4.數組存儲數據的特點:有序、可重復。對于無序、不可重復的需求,不能滿足。

  • 集合的框架結構
  • Java集合可分為Collection和Map兩種體系

  • Collection接口:單列數據,定義了存取一組對象的方法的集合。Collection接口下還有個Queue接口、Set接口、List接口
    List:元素有序、可重復的集合
    Set:元素無序、不可重復的集
  • Map接口:雙列數據,保存具有映射關系“key-value對”的集合
  • 其中:

  • Set下有HashSet,LinkedHashSet,TreeSet
  • List下有ArrayList,Vector,LinkedList
  • Map下有Hashtable,LinkedHashMap,HashMap,TreeMap
  • |----Collection接口:單列集合,用來存儲一個一個的對象|----List接口:存儲有序的、可重復的數據。 -->“動態”數組|----ArrayList:作為List接口的主要實現類,線程不安全的,效率高;底層采用Object[] elementData數組存儲|----LinkedList:對于頻繁的插入刪除操作,使用此類效率比ArrayList效率高底層采用雙向鏈表存儲|----Vector:作為List的古老實現類,線程安全的,效率低;底層采用Object[]數組存儲|----Set接口:存儲無序的、不可重復的數據 -->數學概念上的“集合”|----HashSet:作為Set接口主要實現類;線程不安全;可以存null值|----LinkedHashSet:作為HashSet的子類;遍歷其內部數據時,可以按照添加順序遍歷;對于頻繁的遍歷操作,LinkedHashSet效率高于HashSet.|----TreeSet:可以按照添加對象的指定屬性,進行排序。|----Map:雙列數據,存儲key-value對的數據 ---類似于高中的函數:y = f(x)|----HashMap:作為Map的主要實現類;線程不安全的,效率高;存儲null的key和value|----LinkedHashMap:保證在遍歷map元素時,可以照添加的順序實現遍歷。原因:在原的HashMap底層結構基礎上,添加了一對指針,指向前一個和后一個元素。對于頻繁的遍歷操作,此類執行效率高于HashMap。|----TreeMap:保證照添加的key-value對進行排序,實現排序遍歷。此時考慮key的自然排序或定制排序,底層使用紅黑樹|----Hashtable:作為古老的實現類;線程安全的,效率低;不能存儲null的key和value|----Properties:常用來處理配置文件。key和value都是String類型

    二、Collection接口

    • Collection接口是List、Set和Queue接口的父接口,該接口里定義的方法既可用于操作Set集合,也可用于操作List和 Queue集合。
    • JDK不提供此接口的任何直接實現,而是提供更具體的子接口(如:Set和List)實現。
    • 在JDK 5.0之前,Java集合會丟失容器中所有對象的數據類型,把所有對象都當成 Object類型處理;從JDK 5.0增加了泛型以后,Java集合可以記住容器中對象的數據類型。

    (一)Collection接口常用方法

  • 添加
    add(Object obj)
    addAll(Collection coll)
  • 獲取有效元素個數
    int size()
  • 清空集合
    void clear()
  • 是否為空集合
    boolean isEmpty()
  • 是否包含某個元素
    boolean contains(Object obj):是通過元素的equals方法來判斷是否是同一個對象
    boolean containsAll(Collection c):也是調用元素的equals方法來比較的。用兩個兩個集合的元素逐一比較
  • 刪除
    boolean remove(Object obj):通過元素的equals方法判斷是否是要刪除的那個元素。只會刪除找到的第一個元素
    boolean removeAll(Collection coll):取當前集合的差集
  • 取兩個集合的交集
    boolean retainAll(Collection c):把交集的結果存在當前的集合中,不影響c
  • 集合是否相等
    boolean equals(Object obj)
  • 轉換成對象數組
    Object [] toArray()
  • 獲取集合對象的哈希值
    hashCode()
  • 遍歷
    iterator():返回迭代器對象,用于集合遍歷
  • 代碼實例:

    @Test public void test01(){//1.add(Object e):將元素e添加到集合coll中Collection coll = new ArrayList();coll.add(123);//自動裝箱coll.add(new Date());Collection coll1 = new ArrayList();coll1.add("CC");//addAll(Collection coll1):將coll1集合中的元素添加到當前的集合中coll.addAll(coll1);//2.size():獲取添加的元素的個數System.out.println(coll.size());//3//調用collection1中的toString()方法輸出System.out.println(coll);//[123, Sun Jan 31 14:37:52 CST 2021, CC]//3.clear():清空集合元素coll.clear();//4.isEmpty():判斷當前集合是否為空System.out.println(coll.isEmpty());//true } @Test public void Test02(){Collection coll = new ArrayList();coll.add(123);coll.add(new String("Tom"));coll.add(new Person("Jerry",20));//5.contains(Object obj):判斷當前集合中是否包含obj//判斷時需要調用obj對象所在類的equals()方法System.out.println(coll.contains(new String("Tom")));//trueSystem.out.println(coll.contains(new Person("Jerry",20)));//false,重寫Person類的equals()后為true//containsAll(Collection coll1):判斷形參coll1中的所有元素是否都存在于當前集合中。Collection coll1 = Arrays.asList(1234,new String("Tom"));System.out.println(coll.containsAll(coll1));//true//6.remove(Object obj):從當前集合中移除obj元素。移除成功返回true,否則返回falseSystem.out.println(coll.remove(123));//trueSystem.out.println(coll);//[Tom, Person{name='Jerry', age=20}]//removeAll(Collection coll1):從當前集合中移除coll1中所有的元素。(差集)coll.removeAll(coll1);System.out.println(coll);//[Person{name='Jerry', age=20}]Collection a = new ArrayList();a.add(123);a.add(456);a.add(new Person("Jerry",20));a.add(new String("Tom"));a.add(false);//7.retainAll(Collection coll1):交集:獲取當前集合和coll1集合的交集,并返回給當前集合Collection b = Arrays.asList(123,456,789);System.out.println(a.retainAll(b));//trueSystem.out.println(a);//[123, 456] }@Test public void Test03(){Collection a = new ArrayList();a.add(456);a.add(new Person("Jerry",20));a.add(new String("Tom"));//8.equals(Object obj):要想返回true,需要當前集合和形參集合的元素都相同。Collection b = new ArrayList();b.add(456);b.add(new Person("Jerry",20));b.add(new String("Tom"));System.out.println(a.equals(b));//true//9.hashCode():返回當前對象的哈希值System.out.println(a.hashCode());//1350934216//10.集合 --->數組:toArray()Object[] arr = a.toArray();//拓展:數組 --->集合:調用Arrays類的靜態方法asList()List<Object> objects = Arrays.asList(arr);System.out.println(objects);//注意兩個的區別List<int[]> ints = Arrays.asList(new int[]{123, 456});System.out.println(ints.size());//1,集合將其識別為一個元素List<Integer> integers = Arrays.asList(new Integer[]{123, 456});System.out.println(integers.size());//2//11.iterator():返回Iterator接口的實例,用于遍歷集合元素。 }

    注意:

    使用Collection集合存儲對象,要求對象所屬的類滿足: 向Collection接口的實現類的對象中添加數據obj時,要求obj所在類要重寫equals()。

    (二)Iterator迭代器接口

  • 概述
    • Iterator對象稱為迭代器(設計模式的一種),主要用于遍歷 Collection 集合中的元素。
    • 迭代器模式:提供一種方法訪問一個容器(container)對象中各個元素,而又不需暴露該對象的內部細節。
    • Collection接口繼承了java.lang.Iterable接口,該接口有一個iterator()方法,那么所
      有實現了Collection接口的集合類都有一個iterator()方法,用以返回一個實現了Iterator接口的對象。
    • 集合對象每次調用iterator()方法都得到一個全新的迭代器對象,默認游標都在集合的第一個元素之前。
  • Iterator接口的方法
  • 遍歷的代碼實現
  • Iterator iterator = coll.iterator();//獲取迭代器對象 //hasNext():判斷是否還下一個元素 while(iterator.hasNext()){//next():①指針下移 ②將下移以后集合位置上的元素返回System.out.println(iterator.next()); }
  • iterator中remove()方法的使用
  • 注意:

    • 如果還未調用next()或在上一次調用 next 方法之后已經調用了 remove 方法,再調用remove都會報IllegalStateException。
    • 內部定義了remove(),可以在遍歷的時候,刪除集合中的元素。此方法不同于集合直接調用remove()

    代碼實例:

    Iterator iterator = coll.iterator(); 刪除集合中"Tom" while(iterator.hasNext()){Object obj = iterator.next();if("Tom".equals(obj)){iterator.remove();} }

    (三)JDK 5.0新特性–增強for循環:(foreach循環)

  • 遍歷集合舉例
  • @Test public void test1(){Collection coll = new ArrayList();coll.add(123);coll.add(456);coll.add(new Person("Jerry",20));coll.add(new String("Tom"));coll.add(false);//for(集合元素的類型 局部變量 : 集合對象)//內部仍然調用了迭代器。for(Object obj : coll){System.out.println(obj);} }
  • 遍歷數組舉例
  • @Test public void test2(){int[] arr = new int[]{1,2,3,4};//for(數組元素的類型 局部變量 : 數組對象)for(int i : arr){System.out.println(i);} }

    三、Collection子接口:List接口

    (一)List接口概述

    • 概述:

    鑒于Java中數組用來存儲數據的局限性,我們通常使用List替代數組
    List集合類中元素有序、且可重復,集合中的每個元素都有其對應的順序索引。
    List容器中的元素都對應一個整數型的序號記載其在容器中的位置,可以根據序號存取容器中的元素。
    JDK AP中List接口的實現類常用的有:ArrayList、LinkedList和 Vector.

    • List接口框架

      |----Collection接口:單列集合,用來存儲一個一個的對象|----List接口:存儲序的、可重復的數據。 -->“動態”數組,替換原的數組|----ArrayList:作為List接口的主要實現類;線程不安全的,效率高;底層使用Object[] elementData存儲|----LinkedList:對于頻繁的插入、刪除操作,使用此類效率比ArrayList高;底層使用雙向鏈表存儲|----Vector:作為List接口的古老實現類;線程安全的,效率低;底層使用Object[] elementData存儲

    (二)List接口常用方法

    • List除了從 Collection集合繼承的方法外,List集合里添加了一些根據索引來操作集合元素的方法。
    方法描述
    void add(int index, Object ele)在index位置插入ele元素
    boolean addAll(int index, Collection eles)從index位置開始將eles中的所有元素添加進來
    Object get(int index)獲取指定index位置的元素
    int indexOf(Object obj)返回obj在集合中首次出現的位置
    int lastIndexOf(Object obj)返回obj在當前集合中末次出現的位置
    Object remove(int index)移除指定index位置(0是第一個元素)的元素,并返回此元素
    Object set(int index, Object ele)設置指定index位置的元素為ele
    List subList(int fromIndex, int toIndex)返回從fromIndex到toIndex位置的子集合
    • 代碼實例:
    @Test public void Test1(){ArrayList list = new ArrayList();list.add(123);list.add("AA");list.add(new Person("Tom",12));System.out.println(list);//[123, AA, Person{name='Tom', age=12}]//1.void add(int index, Object ele):在index位置插入ele元素list.add(1,"BB");System.out.println(list);//[123, BB, AA, Person{name='Tom', age=12}]//2.boolean addAll(int index, Collection eles):從index位置開始將eles中的所有元素添加進來List list1 = Arrays.asList(1,2,3);list.addAll(list1);System.out.println(list.size());//7//3.Object get(int index):獲取指定index位置的元素System.out.println(list.get(1));//BB//4.int indexOf(Object obj):返回obj在集合中首次出現的位置System.out.println(list.indexOf("AA"));//3System.out.println(list.indexOf("AAC"));//-1,不存在返回-1//5.int lastIndexOf(Object obj):返回obj在當前集合中末次出現的位置System.out.println(list.lastIndexOf("BB"));//1//6.Object remove(int index):移除指定index位置的元素,并返回此元素System.out.println(list);//[123, BB, AA, Person{name='Tom', age=12}, 1, 2, 3]System.out.println(list.remove(0));//123System.out.println(list);//[BB, AA, Person{name='Tom', age=12}, 1, 2, 3]//7.Object set(int index, Object ele):設置指定index位置的元素為elelist.set(1,"CC");System.out.println(list);//[BB, CC, Person{name='Tom', age=12}, 1, 2, 3]//8.List subList(int fromIndex, int toIndex):返回從fromIndex到toIndex位置的左閉右開區間的子集合List subList = list.subList(2,4);System.out.println(subList);//[Person{name='Tom', age=12}, 1] }
    • 遍歷的三種方式
    @Test public void test3(){ArrayList list = new ArrayList();list.add(123);list.add(456);list.add("AA");//方式一:Iterator迭代器方式Iterator iterator = list.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}//方式二:增強for循環for(Object obj : list){System.out.println(obj);}//方式三:普通for循環for(int i = 0;i < list.size();i++){System.out.println(list.get(i));} }

    (三)實現類之一:ArrayList


    ArrayList的三個構造方法:

    (1)ArrayList()構造一個初始容量為 10 的空列表。

    List<String> list1 = new ArrayList<>();

    (2)ArrayList(int initialCapacity)構造一個具有指定初始容量的空列表。

    List<String> list2 = new ArrayList<>(6);

    (3)ArrayList(Collection<? extends E> c)構造一個包含指定 collection 的元素的列表,這些元素是按照該 collection 的迭代器返回它們的順序排列的。

    List<String> list3 = new ArrayList<>(list2);
    • ArrayList是List接口的典型實現類、主要實現類
    • 本質上,ArrayList是對象引用的一個”變長”數組
    • Array Listi的JDK 1.8之前與之后的實現區別?
      JDK 1.7:ArrayList像餓漢式,直接創建一個初始容量為10的數組
      JDK 1.8:ArrayList像懶漢式,一開始創建一個長度為0的數組,當添加第一個元素時再創建一個始容量為10的數組
    • Arrays.asList(…)方法返回的List集合,既不是 ArrayList實例,也不是Vector實例。Arrays.asList(…)返回值是一個固定長度的List集合

    (四)實現類之一:LinkedList

    • 對與對于頻繁的插入和刪除元素操作,建議使用LinkedList類,效率更高
    • 新增方法:
      void addFirst(Object obj),在鏈表頭部插入一個元素
      void addLast(Object obj),在鏈表尾部添加一個元素
      Object getFirst(),獲取第一個元素
      Object getlast)(),獲取最后一個元素
      Object removeFirst(),刪除頭,獲取元素并刪除
      Object removeLast()刪除尾
    • Linkedlist:雙向鏈表,內部沒有聲明數組,而是定義了Node類型的frst和last,用于記錄首末元素。同時,定義內部類Node,作為 Linkedlist中保存數據的基本結構。Node除了保存數據,還定義了兩個變量:
      prev變量記錄前一個元素的位置
      next變量記錄下一個元素的位置
    • LinkedList 是非線程安全的,并發環境下,多個線程同時操作 LinkedList,會引發不可預知的錯誤

    (五)實現類之一:Vector

    • Vector是一個古老的集合,JDK 1.0就有了。大多數操作與ArrayList相同,區別在于Vector是線程安全的
    • 在各種list中,最好把ArrayList作為缺省選擇。當插入、刪除頻繁時,使用LinkedList;Vector總是比ArrayList慢,所以盡量避免選擇使用。
    • JDK 7.0和JDK 8.0中通過Vector()構造器創建對象時,底層都創建了長度為10的數組。
    • 在擴容方面,默認擴容為原來的數組長度的2倍。

    四、Collection子接口:Set接口

    (一)概述

  • 概述
  • Set接口是Collection的子接口,set接口沒有提供額外的方法
    Set集合不允許包含相同的元素,如果試把兩個相同的元素加入同一個Set集合中,則添加操作失敗。(多用于過濾操作,去掉重復數據)
    Set判斷兩個對象是否相同不是使用==運算符,而是根據equals()方法

  • 常用類

    |----Collection接口:單列集合,用來存儲一個一個的對象|----Set接口:存儲無序的、不可重復的數據 -->高中講的“集合”|----HashSet:作為Set接口的主要實現類;線程不安全的;可以存儲null值|----LinkedHashSet:作為HashSet的子類;遍歷其內部數據時,可以按照添加的順序遍歷,對于頻繁的遍歷操作,LinkedHashSet效率高于HashSet.|----TreeSet:可以按照添加對象的指定屬性,進行排序。
  • HashSet使用哈希表實現的,元素是無序的。添加、刪除操作時間復雜度都是O(1)。


    TreeSet內部結構是一個樹結構(紅黑樹),元素是有序的,添加、刪除操作時間復雜度為O(log(n)),并且提供了first(), last(), headSet(), tailSet()等方法來處理有序集合。


    LinkedHashSet是介于HashSet 和 TreeSet之間,內部是一個雙向鏈表結構,所以它的插入是有序的,時間復雜度是O(1)。

  • 存儲的數據特點:
    用于存放無序的、不可重復的元素
  • 以HashSet為例說明:

  • 無序性:不等于隨機性。存儲的數據在底層數組中并非照數組索引的順序添加,而是根據數據的哈希值決定的。
  • 不可重復性:保證添加的元素照equals()判斷時,不能返回true.即:相同的元素只能添加一個。
  • (二)Set接口常用方法

    • Set接口中沒額外定義新的方法,使用的都是Collection中聲明過的方法。

    (三)實現類之一:HashSet

    概述:

    • Hashset是Set接口的典型實現,大多數時候使用Set集合時都使用這個實現類。
    • HashSet按Hash算法來存儲集合中的元素,因此具有很好的存取、查找、刪除性能。
    • HashSet具有以下特點:
  • 不能保證元素的排列順序
  • HashSet不是線程安全的
  • 集合元素可以是nul
    • HashSet集合判斷兩個元素相等的標準:兩個對象通過hashCode()方法比較相等,并且兩個對象的equals()方法返回值也相等
    • 對于存放在Set容器中的對象,對應的類一定要重寫equals()和hashCode(Object obj)方法,以實現對象相等規則。

    元素添加過程:(難點)

    我們向HashSet中添加元素a,首先調用元素a所在類的hashCode()方法,計算元素a的哈希值,此哈希值接著通過某種算法計算出在HashSet底層數組中的存放位置(即為:索引位置),判斷數組此位置上是否已經有元素:

  • 如果此位置上沒有其他元素,則元素a添加成功。 —>情況1
  • 如果此位置上有其他元素b(或以鏈表形式存在的多個元素),則比較元素a與元素b的hash值:
  • 如果hash值不相同,則元素a添加成功。—>情況2
  • 如果hash值相同,進而需要調用元素a所在類的equals()方法:
    equals()返回true,元素a添加失敗
    equals()返回false,則元素a添加成功。—>情況3
  • 對于添加成功的情況2和情況3而言:元素a 與已經存在指定索引位置上數據以鏈表的方式存儲。

    JDK 7.0 和JDK 8.0 元素添加的區別:

  • JDK 7.0 :元素a放到數組中,指向原來的元素。(頭插法)
  • JDK 8.0 :原來的元素在數組中,指向元素a。(尾插法)
  • (四)實現類之一:LinkedHashSet

    • LinkedhashSet是HashSet的子類,是一個哈希表和鏈表的結合,且是一個雙向鏈表。
    • LinkedhashSet根據元素的hashCode值來決定元素的存儲位置但它同時使用雙向鏈表 維護元素的次序,這使得元素看起來是以插入順序保存的。
    • LinkedhashSet插入性能略低于HashSet,但在迭代訪問Set里的全部元素時有很好的性能。(對于頻繁的遍歷操作,LinkedHashSet效率高于HashSet)
    • LinkedhashSet不允許集合元素重復。
    • LinkedHashSet作為HashSet的子類,在添加數據的同時,每個數據還維護了兩個引用,記錄此數據前一個數據和后一個數據。

    (五)實現類之一:TreeSet

    • 繼承結構與接口實現

    與HashSet集合相比,TreeSet還提供了幾個額外方法:

    Comparator comparator():如果TreeSet采用了定制順序,則該方法返回定制排序所使用的Comparator,如果TreeSet采用自然排序,則返回null;
    Object first():返回集合中的第一個元素;
    Object last():返回集合中的最后一個元素;
    Object lower(Object e):返回指定元素之前的元素。
    Object higher(Object e):返回指定元素之后的元素。
    SortedSet subSet(Object fromElement,Object toElement):返回此Set的子集合,含頭不含尾;
    SortedSet headSet(Object toElement):返回此Set的子集,由小于toElement的元素組成;
    SortedSet tailSet(Object fromElement):返回此Set的子集,由大于fromElement的元素組成;

    說明:

    1.向TreeSet中添加的數據,要求是相同類的對象。2.兩種排序方式:自然排序(實現Comparable接口) 和定制排序(Comparator)1)自然排序中,比較兩個對象是否相同的標準為:compareTo()返回0,不再是equals()方法2)定制排序中,比較兩個對象是否相同的標準為:compare()返回0,不再是equals()方法
  • 向TreeSet中添加的數據,要求是相同類的對象。

    執行結果:會拋出一個異常:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    原因:向TreeSet中添加的數據,要求是相同類的對象

  • 兩種排序方式

    執行結果:java.lang.ClassCastException,出現了類型轉換異常
    原因:在于我們需要告訴TreeSet如何來進行比較元素,如果不指定,就會拋出這個異常

  • 解決:

    • 方法一:自然排序(實現Comparable接口)

    指定比較的規則,在自定義類(Person)中實現Comparable接口,并重寫接口中的compareTo方法

    說明:

    • 自然排序:TreeSet會調用集合元素的compareTo(object obj)方法來比較元素之間的大小關系,然后將集合元素按升序(默認情況)排列
    • 如果試圖把一個對象添加到Treeset時,則該對象的類必須實現Comparable接口
    • 實現Comparable的類必須實現compareTo(Object obj)方法,兩個對象即通過compareTo(Object obj)方法的返回值來比較大小
    • Comparable的典型實現:
  • BigDecimal、BigInteger以及所有的數值型對應的包裝類:按它們對應的數值大小進行比較
  • Character:按字符的unic!ode值來進行比較
  • Boolean:true對應的包裝類實例大于fase對應的包裝類實例
  • String:按字符串中字符的unicode值進行比較
  • Date、Time:后邊的時間、日期比前面的時間、日期大
    • 向TreeSet中添加元素時,只有第一個元素無須比較compareTo()方法,后面添加的所有元素都會調用compareTo()方法進行比較。
    • 因為只有相同類的兩個實例才會比較大小,所以向 TreeSet中添加的應該是同一個類的對象。 對于TreeSet集合而言,它判斷兩個對象是否相等的唯一標準是:兩個對象通過compareTo(Object obj)方法比較返回值
    • 當需要把一個對象放入TreeSet中,重寫該對象對應的equals()方法時,應保證該方法與compareTo(Object obj)方法有一致的結果:如果兩個對象通過equals()方法比較返回true,則通過compareTo(object ob)方法比較應返回0。否則,讓人難以理解。

    注意:

    • TreeSet會調用集合元素的compareTo(Objec obj)方法來比較元素之間的大小關系,obj1.compareTo(obj2)如果返回0表示兩個對象相等;如果返回正整數則表明obj1大于obj2,如果是負整數則相反。

    代碼實例:

    public class User implements Comparable{private String name;private int age;//按照姓名從大到小排列,年齡從小到大排列@Overridepublic int compareTo(Object o) {if(o instanceof User){User user = (User)o;int compare = -this.name.compareTo(user.name);if(compare != 0){return compare;}else{return Integer.compare(this.age,user.age);}}else{throw new RuntimeException("輸入的類型不匹配");}}//其他代碼省略 } public class TreeSetTest {@Testpublic void test1(){TreeSet<User> set = new TreeSet<>();set.add(new User("Tom",12));set.add(new User("Jerry",32));set.add(new User("Jack",33));set.add(new User("Jack",56));System.out.println(set);//[User{name='Tom', age=12}, User{name='Jerry', age=32}, User{name='Jack', age=33}, User{name='Jack', age=56}]} }
    • 方法二:定制排序(Comparator)

    說明:

    • TreeSet的自然排序要求元素所屬的類實現Comparable接口,如果元素所屬的類沒有實現 Comparable接口,或不希望按照升序(默認情況)的方式排列元素或希望按照其它屬性大小進行排序,則考慮使用定制排序。定制排序,通過 Comparator接口來實現。需要重寫 compare(T o1,T o2)方法。
    • 利用int compare(T o1,T o2)方法,比較o1和o2的大小:如果方法返回正整數,則表示o1大于o2;如果返回0,表示相等;返回負整數,表示o1小于o2。
    • 要實現定制排序,需要將實現Comparator接口的實例作為形參傳遞給TreeSet的構造器。
    • 此時,仍然只能向Treeset中添加類型相同的對象。否則發生 ClassCastException異常
    • 使用定制排序判斷兩個元素相等的標準是:通過 Comparator比較兩個元素返回了0

    代碼實例:

    @Test public void test2(){//創建一個Comparator接口的對象Comparator com = new Comparator() {//按照年齡從小到大排列@Overridepublic int compare(Object o1, Object o2) {if(o1 instanceof User && o2 instanceof User){User u1 = (User)o1;User u2 = (User)o2;return Integer.compare(u1.getAge(),u2.getAge());}else{throw new RuntimeException("輸入的數據類型不匹配");}}};//如果構造方法中沒有參數,則按照自然排序的方式進行排序//否則按照定制排序TreeSet set = new TreeSet(com);set.add(new User("Tom",12));set.add(new User("Jerry",33));set.add(new User("Jack",33));//該對象插入失敗,因為存在年齡相同的對象set.add(new User("Jack",56));System.out.println(set);//[User{name='Tom', age=12}, User{name='Jerry', age=33}, User{name='Jack', age=56}] }

    五、Map接口

    (一)概述

    • Map與Collection并列存在。用于保存具有映射關系的數據:key-value
    • Map中的key和value都可以是任何引用類型的數據
    • Map中的key用set來存放,不允許重復,即同一個Map對象所對應的類,須重hashCode()和 equals()方法
    • 常用 String類作為Map的“鍵”
    • key和value之間存在單向一對一關系,即通過指定的key總能找到唯一的、確定的value
    • Map接口的常用實現類:HashMap、TreeMap、LinkedHashMap和Properties。其中,HashMap是Map接口使用頻率最高的實現類
    • 常見類結構:

      |----Map:雙列數據,存儲key-value對的數據 ---類似于高中的函數:y = f(x)|----HashMap:作為Map的主要實現類;線程不安全的,效率高;存儲null的key和value|----LinkedHashMap:保證在遍歷map元素時,可以照添加的順序實現遍歷。原因:在原的HashMap底層結構基礎上,添加了一對指針,指向前一個和后一個元素。對于頻繁的遍歷操作,此類執行效率高于HashMap。|----TreeMap:保證照添加的key-value對進行排序,實現排序遍歷。此時考慮key的自然排序或定制排序底層使用紅黑樹|----Hashtable:作為古老的實現類;線程安全的,效率低;不能存儲null的key和value(注意t小寫)|----Properties:常用來處理配置文件。key和value都是String類型HashMap的底層: 數組+鏈表 (JDK 7.0及之前)數組+鏈表+紅黑樹 (JDK 8.0以后)
    • 存儲結構的理解

      Map中的key:無序的、不可重復的,使用Set存儲所的key ---> key所在的類要重寫equals()和hashCode() (以HashMap為例)Map中的value:無序的、可重復的,使用Collection存儲所的value --->value所在的類要重寫equals()一個鍵值對:key-value構成了一個Entry對象。Map中的entry:無序的、不可重復的,使用Set存儲所的entry

    (二)Map接口常用方法

    添加、刪除、修改、查詢方法:

    Object put(Object key,Object value):將指定key-value添加到(或修改)當前map對象中 void putAll(Map m):將m中的所有key-value對存放到當前map中 Object remove(Object key):移除指定key的key-value對,并返回value void clear():清空當前map中的所有數據 Object get(Object key):獲取指定key對應的value boolean containsKey(Object key):是否包含指定的key boolean containsValue(Object value):是否包含指定的value int size():返回map中key-value對的個數 boolean isEmpty():判斷當前map是否為空 boolean equals(Object obj):判斷當前map和參數對象obj是否相等 @Test public void test1(){Map map = new HashMap();//1.Object put(Object key,Object value):將指定key-value添加到(或修改)當前map對象中map.put("AA",11);map.put(45,34);map.put("BB",22);//如果有相同的key,則更新valuemap.put("AA",00);System.out.println(map);//{AA=0, BB=22, 45=34}//2.void putAll(Map m):將m中的所有key-value對存放到當前map中Map map1 = new HashMap();map1.put("CC",33); map1.put("DD",44);map.putAll(map1);System.out.println(map);//{AA=0, BB=22, CC=33, DD=44, 45=34}//3.Object remove(Object key):移除指定key的key-value對,并返回value;如果沒有該key就返回nullObject value = map.remove("CC");System.out.println(value);//33//4.Object get(Object key):獲取指定key對應的valueObject obj = map.get("AA");System.out.println(obj);//0//5.boolean containsKey(Object key):是否包含指定的keySystem.out.println(map.containsKey("AA"));//trueSystem.out.println(map.containsKey("EE"));//flase//6.boolean containsValue(Object value):是否包含指定的valueSystem.out.println(map.containsValue(22));//true//7.void clear():清空當前map中的所有數據map.clear();System.out.println(map.size());//0System.out.println(map);//{}//8.boolean isEmpty():判斷當前map是否為空System.out.println(map.isEmpty());//true }

    元視圖操作的方法:(Map的遍歷)

    Set keySet():返回所有key構成的Set集合 Collection values():返回所有value構成的Collection集合 Set entrySet():返回所有key-value對構成的Set集合 @Test public void test2(){Map map = new HashMap();map.put("AA",11);map.put("BB",22);map.put("CC",33);//方法一:Set keySet():返回所有key構成的Set集合Set set = map.keySet();Iterator iterator = set.iterator();while(iterator.hasNext()){Object obj = iterator.next();System.out.println(obj+"="+map.get(obj));//通過key來找到value}//方法二:Collection values():返回所有value構成的Collection集合,遍歷valueCollection values = map.values();for(Object obj : values){System.out.println(obj);}//方法三:Set entrySet():返回所有key-value對構成的Set集合,集合中的每個元素是Entry類型Set entrySet = map.entrySet();Iterator iterators = entrySet.iterator();while(iterators.hasNext()){Object obj = iterators.next();Map.Entry entry = (Map.Entry)obj;System.out.println(entry.getKey()+"="+entry.getValue());}//方法四:加強for循環for(Map.Entry<String,Object> entry : map.entrySet()){String mapKey = entry.getKey();Object mapValue = entry.getValue();System.out.println(mapKey+":"+mapValue);}}

    (三)實現類之一:HashMap

    元素添加過程簡要說明:

    HashMap的底層實現原理?以jdk7為例說明:

    ????1.HashMap map = new HashMap():
    ????2.在實例化以后,底層創建了長度是16的一維數組Entry[] table。

    ????3.map.put(key1,value1):(可能已經執行過多次put)
    ????4.首先,調用key1所在類的hashCode()計算key1哈希值,此哈希值經過某種算法計算以后,得到在Entry數組中的存放位置。

    1)如果此位置上的數據為空,此時的key1-value1添加成功。 ----情況1
    2)如果此位置上的數據不為空,(意味著此位置上存在一個或多個數據(以鏈表形式存在)),比較key1和已經存在的一個或多個數據的哈希值:

    ①如果key1的哈希值與已經存在的數據的哈希值都不相同,此時key1-value1添加成功。----情況2
    ②如果key1的哈希值和已經存在的某一個數據(key2-value2)的哈希值相同,繼續比較:調用key1所在類的equals(key2)方法,比較:

    如果equals()返回false:此時key1-value1添加成功。----情況3
    如果equals()返回true:使用value1替換value2。

    補充:關于情況2和情況3:此時key1-value1和原來的數據以鏈表的方式存儲。

    HashMap的擴容:(jdk7)

    ????在不斷的添加過程中,會涉及到擴容問題,當超出臨界值(且要存放的位置非空)時,擴容。默認的擴容方式:擴容為原來容量的2倍,并將原有的數據復制過來。
    ????當HashMap中的元素越來越多的時候,hash沖突的幾率也就越來越高,因為數組的長度是固定的。所以為了提高查詢的效率,就要對 HashMap的數組進行擴容,而在HashMap數組擴容之后,原數組中的數據必須重新計算其在新數組中的位置,并放進去,這就是 resize。

    HashMap擴容時機:(jdk7)

    ????當HashMap中的元素個數超過數組大小(數組總大小 length,不是數組中個數)* loadFactor時,就會進行數組擴容,loadFactor的默認值(DEFAULT_LOAD_ FACTOR)為0.75,這是一個折中的取值。也就是說,默認情況下,數組大小(DEFAULT INITIAL CAPACITY)為16,那么當 HashMap中元素個數超過16 * 0.75=12(這個值就是代碼中的 threshold值,也叫做臨界值)的時候,就把數組的大小擴展為2 * 16=32,即擴大一倍,然后重新計算每個元素在數組中的位置,而這是一個非常消耗性能的操作,所以如果我們已經預知 HashMap中元素的個數,那么預設元素的個數能夠有效的提高HashMap的性能。


    HashMap在JDK 8.0底層實現原理:

    HashMap添加元素的過程:(jdk8)

    ????當實例化一個HashMap時,會初始化 initialCapacity和loadFactor,在put第一對映射關系時,系統會創建一個長度為 initialCapacity的Node數組,這個長度在哈希表中被稱為容量(Capacity),在這個數組中可以存放元素的位置我們稱之為“桶”( bucket),每個bucket都有自己的索引,系統可以根據索引快速的查找bucket中的元素。
    ????每個 bucket中存儲一個元素,即一個Node對象,但每一個Noe對象可以帶個引用變量next,用于指向下一個元素,因此,在一個桶中,就有可能生成一個Node鏈。也可能是一個一個 TreeNode對象,每一個Tree node對象可以有兩個葉子結點left和right,因此,在一個桶中,就有可能生成一個TreeNode樹。而新添加的元素作為鏈表的last,或樹的葉子結點。

    HashMap的擴容機制:(jdk8)

    ????當HashMapl中的其中一個鏈的對象個數沒有達到8個和JDK 7.0以前的擴容方式一樣。
    當HashMapl中的其中一個鏈的對象個數如果達到了8個,此時如果 capacity沒有達到64,那么HashMap會先擴容解決,如果已經達到了64,那么這個鏈會變成樹,結點類型由Node變成 Tree Node類型。當然,如果當映射關系被移除后,下次resize方法時判斷樹的結點個數低于6個,也會把樹再轉為鏈表。

    jdk8 相較于jdk7在底層實現方面的不同:

    ????1.new HashMap():底層沒有創建一個長度為16的數組
    ????2. jdk 8底層的數組是:Node[],而非Entry[]

    ????3. 首次調用put()方法時,底層創建長度為16的數組
    ????4. jdk7底層結構只有:數組+鏈表。jdk8中底層結構:數組+鏈表+紅黑樹。

    ????1)形成鏈表時,七上八下(jdk7:新的元素指向舊的元素。jdk8:舊的元素指向新的元素)
    ????2)當數組的某一個索引位置上的元素以鏈表形式存在的數據個數 > 8 且當前數組的長度 64時,此時此索引位置上的所數據改為使用紅黑樹存儲。(方便查找)


    HashMap底層典型屬性的說明:

    ????DEFAULT_INITIAL_CAPACITY : HashMap的默認容量,16
    ????DEFAULT_LOAD_FACTOR:HashMap的默認加載因子:0.75
    ????threshold:擴容的臨界值,= 容量*填充因子:16 * 0.75 => 12
    ????TREEIFY_THRESHOLD:Bucket中鏈表長度大于該默認值,轉化為紅黑樹:JDK 8.0引入
    ????MIN_TREEIFY_CAPACITY:桶中的Node被樹化時最小的hash表容量:64

    (四)實現類之一:LinkedHashMap

    LinkedHashMap底層使用的結構與HashMap相同,因為LinkedHashMap繼承于HashMap.
    區別就在于:LinkedHashMap內部提供了Entry,替換HashMap中的Node.
    與LinkedhashSet類似,LinkedHashMap可以維護Map的迭代順序:迭代順序與Key-value對的插入順序一致

    (五)實現類之一:TreeMap

    ????1.TreeMap存儲Key-Value對時,需要根據key-value對進行排序。TreeMap可以保證所有的 Key-Value對處于有序狀態。
    ????2.TreeSet底層使用紅黑樹結構存儲數據
    ????3.TreeMap的Key的排序:

  • 自然排序: TreeMap的所有的Key必須實現Comparable接口,而且所有的Key應該是同一個類的對象,否則將會拋出ClasssCastEXception()
  • 定制排序:創建 TreeMap時,傳入一個 Comparator對象,該對象負責對TreeMap中的所有key進行排序。此時不需要Map的Key實現Comparable接口
    TreeMap判斷兩個key相等的標準:兩個key通過 compareTo()方法或者compare()方法返回0.
  • 代碼示例:

    class User implements Comparable{String name;int age;public User() {}public User(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';}//按照姓名從大到小排列,年齡從小到大排列@Overridepublic int compareTo(Object o) {if(o instanceof User){User user = (User)o;int compare = -this.name.compareTo(user.name);if(compare == 0){ // return this.age-user.age;return Integer.compare(this.age,user.age);}else{return compare;}}throw new RuntimeException("輸入的類型不匹配");}} public class TreeMapTest {//方式二:自然排序@Testpublic void test1() {TreeMap map = new TreeMap();User u1 = new User("Tom",23);User u2 = new User("Jerry",32);User u3 = new User("Tom",20);User u4 = new User("Rose",18);map.put(u1,98);map.put(u2,89);map.put(u3,76);map.put(u4,100);System.out.println(map);}//方式一:定制排序@Testpublic void test2(){Comparator com = new Comparator(){//按照年齡升序排序@Overridepublic int compare(Object o1, Object o2) {if(o1 instanceof User && o2 instanceof User){User user1 = (User)o1;User user2 = (User)o2;return Integer.compare(user1.age,user2.age);}throw new RuntimeException("輸入類型不匹配");}};TreeMap map = new TreeMap(com);User u1 = new User("Tom",23);User u2 = new User("Jerry",32);User u3 = new User("Tom",20);User u4 = new User("Rose",18);map.put(u1,98);map.put(u2,89);map.put(u3,76);map.put(u4,100);System.out.println(map);} }

    (六)使用Properties讀取配置文件

    Hashtable的介紹:

    Hashtable是個古老的Map實現類,JDK1.0就提供了。不同于 HashMap,Hashtable是線程安全的.
    Hashtable實現原理和HashMap相同,功能相同。底層都使用哈希表結構,查詢速度快,很多情況下可以互用
    與HashMap.不同,Hashtable不允許使用null作為key和value.
    與HashMap一樣,Hashtable也不能保證其中Key-value對的順序.
    Hashtable判斷兩個key相等、兩個value相等的標準,與HashMap-致.

    Properties類是Hashtable的子類,該對象用于處理屬性文件

    由于屬性文件里的key、value都是字符串類型,所以Properties里的key和value都是字符串類型
    存取數據時,建議使用setProperty(String key,String value)方法和getProperty(String key)方法

    代碼實例:

    public class PropertiesTest {public static void main(String[] args) {FileInputStream fis = null;try {Properties pros = new Properties();fis = new FileInputStream("jdbc.properties");pros.load(fis);//加載流對應的文件String name = pros.getProperty("name");String password = pros.getProperty("password");System.out.println("name = " + name + ", password = " + password);//name = Tom, password = 123} catch (IOException e) {e.printStackTrace();} finally {if(fis != null){try {fis.close();} catch (IOException e) {e.printStackTrace();}}}} }

    出現中文亂碼的解決辦法:

    使用Classloader加載src目錄下的配置文件

    //Properties:用來讀取配置文件 @Test public void test2() throws Exception {Properties pro = new Properties();//讀取配置文件方式一:此時的文件默認在當前的module下 // FileInputStream fis1 = new FileInputStream(new File("jdbc1.properties")); // pro.load(fis1);//讀取配置文件方式二:使用ClassLoader//配置文件默認識別為:當前module的src下ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();//獲取系統類加載器InputStream fis2 = classLoader.getResourceAsStream("jdbc1.properties");pro.load(fis2);String user = pro.getProperty("user");String password = pro.getProperty("password");System.out.println("user="+user+",password="+password); }

    六、Collections工具類的使用

    1. 作用:

    Collections是一個操作Set、List和Map等集合的工具類
    Collections中提供了一系列靜態的方法對集合元素進行排序、査詢和修改等操作,還提供了對集合對象設置不可變、對集合對象實現同步控制等方法

  • 常用方法:
    排序操作:

    reverse(List):反轉 List 中元素的順序shuffle(List):對 List 集合元素進行隨機排序sort(List):根據元素的自然順序對指定 List 集合元素按升序排序sort(List,Comparator):根據指定的 Comparator 產生的順序對 List 集合元素進行排序swap(List,int, int):將指定 list 集合中的 i 處元素和 j 處元素進行交換

    查找、替換操作:

    Object max(Collection):根據元素的自然順序,返回給定集合中的最大元素Object max(Collection,Comparator):根據 Comparator 指定的順序,返回給定集合中的最大元素Object min(Collection)Object min(Collection,Comparator)int frequency(Collection,Object):返回指定集合中指定元素的出現次數void copy(List dest,List src):將src中的內容復制到dest中boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替換 List 對象的所有舊值

    代碼實例:

  • @Test public void test1(){List list = new ArrayList();list.add(123);list.add(43);list.add(43);list.add(-97);list.add(0);System.out.println(list);//[123, 43, 43, -97, 0]//1.reverse(List):反轉 List 中元素的順序Collections.reverse(list);System.out.println(list);//[0, -97, 43, 43, 123]//2.shuffle(List):對 List 集合元素進行隨機排序Collections.shuffle(list);System.out.println(list);//[123, -97, 43, 0, 43]//3.sort(List):根據元素的自然順序對指定 List 集合元素按升序排序Collections.sort(list);System.out.println(list);//[-97, 0, 43, 43, 123]//4.swap(List,int, int):將指定 list 集合中的 i 處元素和 j 處元素進行交換Collections.swap(list,0,1);System.out.println(list);//[0, -97, 43, 43, 123]//5.int frequency(Collection,Object):返回指定集合中指定元素的出現次數int frequency = Collections.frequency(list, 43);System.out.println(frequency);//2//6.void copy(List dest,List src):將src中的內容復制到dest中/*//報異常java.lang.IndexOutOfBoundsException: Source does not fit in destList dest = new ArrayList();Collections.copy(dest,list);*///正確做法:List dest = Arrays.asList(new Object[list.size()]);Collections.copy(dest,list);System.out.println(dest);//[0, -97, 43, 43, 123]//7.boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替換 List 對象的所有舊值 }
  • 同步控制
    Collections 類中提供了多個 synchronizedXxx() 方法,該方法可使將指定集合包裝成線程同步的集合,從而可以解決多線程并發訪問集合時的線程安全問題

    代碼實例:
  • @Test public void test3(){List list = new ArrayList();list.add(123);list.add(43);list.add(43);list.add(-97);list.add(0);//返回的list1即為線程安全的ListList list1 = Collections.synchronizedList(list); }

    七、面試題

  • 請問 ArrayList/LinkedList/Vector的異同?談談你的理解?ArrayList底層是什么?擴容機制? Vector和 ArrayList的最大區別?
  • ArrayList和 Linkedlist的異同:
    二者都線程不安全,相比線程安全的 Vector,ArrayList執行效率高。 此外,ArrayList是實現了基于動態數組的數據結構,Linkedlist基于鏈表的數據結構。對于隨機訪問get和set,ArrayList覺得優于Linkedlist,因為Linkedlist要移動指針。對于新增和刪除操作add(特指插入)和 remove,Linkedlist比較占優勢,因為 ArrayList要移動數據。
    ArrayList和 Vector的區別:
    Vector和ArrayList幾乎是完全相同的,唯一的區別在于Vector是同步類(synchronized),屬于強同步類。因此開銷就比 ArrayList要大,訪問要慢。正常情況下,大多數的Java程序員使用ArrayList而不是Vector,因為同步完全可以由程序員自己來控制。Vector每次擴容請求其大小的2倍空間,而ArrayList是1.5倍。Vector還有一個子類Stack.

  • 區分List中remove(int index)和remove(Object obj)
  • @Test public void testListRemove() {//區分List中remove(int index)和remove(Object obj)List list = new ArrayList();list.add(1);list.add(2);list.add(3);list.remove(2);//移除index為2的對象System.out.println(list);//[1, 2]list.remove(new Integer(2));//移除值為2的對象System.out.println(list);//[1] }
  • 集合Collection中存儲的如果是自定義類的對象,需要自定義類重寫哪個方法?

    List:equals()方法,add()方法不需要調用equals(),主要用于contains()/remove()/retainsAll()...等方法。Set: (HashSet、LinkedHashSet):equals()、hashCode()(TreeSet):comparable:compareTo(Object obj):comparator:compare(Object o1,Object o2)
  • 關于hashSet()存儲相關的代碼分析

  • @Test public void test2(){HashSet set = new HashSet();Person p1 = new Person(1001,"AA");set.add(p1);p1.name = "CC";set.remove(p1);//此時p1的hashCode()已經變了,移除失敗System.out.println(set);//[Person{id=1001, name='CC'}]set.add(new Person(1001,"CC"));//新對象和p1的hashCode()不同,添加成功(但它們equals相同)System.out.println(set);//[Person{id=1001, name='CC'}, Person{id=1001, name='CC'}]set.add(new Person(1001,"AA"));//新對象和p1的hashCode()相同,但equals不同,添加成功System.out.println(set);//[Person{id=1001, name='CC'}, Person{id=1001, name='CC'}, Person{id=1001, name='AA'}] }
  • 載因子值的大小,對HashMap的影響?
  • ????負載因子的大小決定了HashMap的數據密度。
    ????負載因子越大密度越大,發生碰撞的幾率越高,數組中的鏈表越容易長,造成査詢或插入時的比較次數增多,性能會下降
    ????負載因子越小,就越容易觸發擴容,數據密度也越小,意味著發生碰撞的幾率越小,數組中的鏈表也就越短,查詢和插入時比較的次數也越小,性能會更高。但是會浪費一定的內容空間。而且經常擴容也會影響性能,建議初始化預設大一點的空間
    ????按照其他語言的參考及研究經驗,會考慮將負載因子設置為0.7~0.75,此時平均檢索長度接近于常數。

    好的博客:
    Java集合類(四)—TreeSet
    關于紅黑樹(R-B tree)原理

    總結

    以上是生活随笔為你收集整理的Java集合详解(超详细)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    18禁黄网站男男禁片免费观看 | 熟妇人妻中文av无码 | 欧美成人午夜精品久久久 | 久久久久av无码免费网 | 国产一区二区三区日韩精品 | 一本久道久久综合婷婷五月 | 野狼第一精品社区 | 人人澡人人妻人人爽人人蜜桃 | 波多野结衣av一区二区全免费观看 | 精品国偷自产在线 | 波多野结衣一区二区三区av免费 | 漂亮人妻洗澡被公强 日日躁 | 无码av最新清无码专区吞精 | 国产激情无码一区二区 | 黑人大群体交免费视频 | 久久亚洲中文字幕无码 | 欧洲欧美人成视频在线 | 亚洲中文字幕久久无码 | 国产精品永久免费视频 | 国产无遮挡吃胸膜奶免费看 | 国产精品手机免费 | 1000部啪啪未满十八勿入下载 | 欧美丰满熟妇xxxx性ppx人交 | 俺去俺来也www色官网 | 久久97精品久久久久久久不卡 | 日本一区二区更新不卡 | 国产精品怡红院永久免费 | 啦啦啦www在线观看免费视频 | 免费网站看v片在线18禁无码 | 亚洲国产高清在线观看视频 | 性色欲网站人妻丰满中文久久不卡 | 色噜噜亚洲男人的天堂 | 亚洲a无码综合a国产av中文 | 成人免费视频视频在线观看 免费 | 无码精品人妻一区二区三区av | 人妻少妇精品无码专区动漫 | 亚洲午夜无码久久 | 亚洲国产精品久久久久久 | 国产人妻人伦精品1国产丝袜 | 扒开双腿疯狂进出爽爽爽视频 | 丰满人妻精品国产99aⅴ | 又粗又大又硬毛片免费看 | 久久综合九色综合97网 | 国产性生大片免费观看性 | 中文字幕乱码中文乱码51精品 | 久久精品一区二区三区四区 | 秋霞成人午夜鲁丝一区二区三区 | 天天拍夜夜添久久精品大 | 一个人免费观看的www视频 | 国产美女精品一区二区三区 | 久久97精品久久久久久久不卡 | 欧美自拍另类欧美综合图片区 | a在线亚洲男人的天堂 | 国产av剧情md精品麻豆 | 麻豆国产人妻欲求不满谁演的 | 熟女少妇在线视频播放 | a片在线免费观看 | 亚洲区小说区激情区图片区 | 国产精品内射视频免费 | 久久国产精品偷任你爽任你 | 色一情一乱一伦一视频免费看 | 熟妇激情内射com | 国产在线精品一区二区三区直播 | 国产一区二区三区四区五区加勒比 | 日本大乳高潮视频在线观看 | 丰满少妇女裸体bbw | 亚洲va中文字幕无码久久不卡 | 久精品国产欧美亚洲色aⅴ大片 | 18黄暴禁片在线观看 | 99久久久无码国产aaa精品 | 亚洲欧美精品伊人久久 | 无码一区二区三区在线 | 亚洲熟妇自偷自拍另类 | 99精品国产综合久久久久五月天 | 亚洲伊人久久精品影院 | 亚洲乱亚洲乱妇50p | 狠狠cao日日穞夜夜穞av | 三上悠亚人妻中文字幕在线 | 中国女人内谢69xxxx | 久久久精品国产sm最大网站 | 亚洲熟熟妇xxxx | 午夜福利不卡在线视频 | 国产av久久久久精东av | 国产综合在线观看 | 国产农村妇女高潮大叫 | 久在线观看福利视频 | 成人影院yy111111在线观看 | 国产精品久久久久无码av色戒 | 日本精品久久久久中文字幕 | 激情综合激情五月俺也去 | 97色伦图片97综合影院 | 综合人妻久久一区二区精品 | av无码电影一区二区三区 | 麻豆md0077饥渴少妇 | 国内少妇偷人精品视频 | 国产成人精品一区二区在线小狼 | 国内揄拍国内精品少妇国语 | 亚洲小说春色综合另类 | 中国女人内谢69xxxxxa片 | 粉嫩少妇内射浓精videos | 国产在线精品一区二区三区直播 | 成人aaa片一区国产精品 | 又大又黄又粗又爽的免费视频 | 黑人大群体交免费视频 | 丰满少妇弄高潮了www | 国产精品99爱免费视频 | 少妇高潮一区二区三区99 | 色婷婷欧美在线播放内射 | 无码人妻av免费一区二区三区 | 成人无码精品1区2区3区免费看 | 高中生自慰www网站 | 草草网站影院白丝内射 | 久久亚洲a片com人成 | 中文字幕乱码人妻无码久久 | 国产午夜手机精彩视频 | 国产乱人无码伦av在线a | 六月丁香婷婷色狠狠久久 | 国产精品免费大片 | 一个人免费观看的www视频 | 国产精品永久免费视频 | 久久精品中文闷骚内射 | 波多野结衣av在线观看 | 精品无码国产一区二区三区av | 亚洲精品国产第一综合99久久 | 一本久道久久综合婷婷五月 | 蜜桃无码一区二区三区 | 国产97色在线 | 免 | 亚洲小说图区综合在线 | 国精品人妻无码一区二区三区蜜柚 | 免费国产黄网站在线观看 | 激情人妻另类人妻伦 | 国产乡下妇女做爰 | 啦啦啦www在线观看免费视频 | 久久综合激激的五月天 | 熟妇女人妻丰满少妇中文字幕 | 亚洲精品国产a久久久久久 | 国产精品对白交换视频 | 无码播放一区二区三区 | 国产一精品一av一免费 | 国产在线aaa片一区二区99 | 亚洲国产成人av在线观看 | 大乳丰满人妻中文字幕日本 | 伊人久久大香线蕉午夜 | 成熟女人特级毛片www免费 | 久久97精品久久久久久久不卡 | 荫蒂添的好舒服视频囗交 | 人妻天天爽夜夜爽一区二区 | 精品久久久中文字幕人妻 | 日韩av无码中文无码电影 | 老司机亚洲精品影院无码 | 国产口爆吞精在线视频 | 亚洲精品国产第一综合99久久 | 一二三四在线观看免费视频 | 超碰97人人做人人爱少妇 | 国产亚洲精品久久久ai换 | 亚洲中文字幕无码中文字在线 | 99久久精品无码一区二区毛片 | 无码人妻少妇伦在线电影 | 日产国产精品亚洲系列 | 亚洲一区二区三区 | 熟妇激情内射com | 全球成人中文在线 | 国产精品久久国产三级国 | 国内揄拍国内精品少妇国语 | 少妇厨房愉情理9仑片视频 | 亚洲熟妇色xxxxx亚洲 | 中文字幕乱码亚洲无线三区 | 亚洲一区二区三区香蕉 | 久久精品人人做人人综合试看 | 久久久无码中文字幕久... | 波多野42部无码喷潮在线 | 乱码av麻豆丝袜熟女系列 | 在线视频网站www色 | 国产艳妇av在线观看果冻传媒 | 国内丰满熟女出轨videos | 999久久久国产精品消防器材 | 国产无遮挡又黄又爽又色 | 无码人中文字幕 | 日本爽爽爽爽爽爽在线观看免 | 动漫av网站免费观看 | 最新版天堂资源中文官网 | 久久午夜无码鲁丝片午夜精品 | 久久99国产综合精品 | 色妞www精品免费视频 | 亚洲国产精品无码久久久久高潮 | 久久久久av无码免费网 | 日韩人妻无码中文字幕视频 | 1000部夫妻午夜免费 | 久久99精品国产.久久久久 | 欧美老妇交乱视频在线观看 | 老太婆性杂交欧美肥老太 | 亚洲日韩一区二区 | 丁香花在线影院观看在线播放 | 亚洲日韩av一区二区三区中文 | 国产人妻精品一区二区三区不卡 | 亚洲熟妇自偷自拍另类 | 无码午夜成人1000部免费视频 | 免费乱码人妻系列无码专区 | 成人精品一区二区三区中文字幕 | 18精品久久久无码午夜福利 | 精品aⅴ一区二区三区 | 日韩av无码中文无码电影 | 亚洲狠狠色丁香婷婷综合 | 捆绑白丝粉色jk震动捧喷白浆 | 狠狠噜狠狠狠狠丁香五月 | 亚洲狠狠色丁香婷婷综合 | 成人免费视频视频在线观看 免费 | 无码播放一区二区三区 | 亚洲小说图区综合在线 | 亚洲精品美女久久久久久久 | 亚洲精品一区三区三区在线观看 | 国产成人精品视频ⅴa片软件竹菊 | 午夜精品久久久久久久 | 内射欧美老妇wbb | 久久精品人妻少妇一区二区三区 | 美女极度色诱视频国产 | 日本免费一区二区三区最新 | 双乳奶水饱满少妇呻吟 | 55夜色66夜色国产精品视频 | 国产在线精品一区二区高清不卡 | 俺去俺来也在线www色官网 | 久久久国产一区二区三区 | 国产精品久久久久久亚洲毛片 | 内射后入在线观看一区 | 免费网站看v片在线18禁无码 | 精品国产青草久久久久福利 | 18禁止看的免费污网站 | 国产人成高清在线视频99最全资源 | 国产精品久久久久久亚洲毛片 | аⅴ资源天堂资源库在线 | 97人妻精品一区二区三区 | 中文字幕乱妇无码av在线 | 天海翼激烈高潮到腰振不止 | 毛片内射-百度 | 一本色道久久综合亚洲精品不卡 | 亚洲欧洲日本无在线码 | 国产无遮挡吃胸膜奶免费看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 一本久道高清无码视频 | 亚洲七七久久桃花影院 | 131美女爱做视频 | 欧美日韩一区二区三区自拍 | 人人爽人人澡人人高潮 | 婷婷丁香五月天综合东京热 | 毛片内射-百度 | а√资源新版在线天堂 | 少妇性荡欲午夜性开放视频剧场 | 成年女人永久免费看片 | 亚洲中文字幕va福利 | 性做久久久久久久免费看 | 国产一精品一av一免费 | 久久国产精品偷任你爽任你 | 久久久久久a亚洲欧洲av冫 | 久久精品国产精品国产精品污 | 亚洲中文字幕av在天堂 | 无码成人精品区在线观看 | 亚洲 高清 成人 动漫 | 亚洲国产精品成人久久蜜臀 | 麻豆人妻少妇精品无码专区 | 久久精品视频在线看15 | 成人免费视频在线观看 | 国产午夜福利亚洲第一 | 无遮挡国产高潮视频免费观看 | 欧美人妻一区二区三区 | 人人妻人人澡人人爽欧美一区 | 性做久久久久久久免费看 | 99精品无人区乱码1区2区3区 | 久久aⅴ免费观看 | 日韩人妻系列无码专区 | 在线播放亚洲第一字幕 | 成年女人永久免费看片 | 激情内射日本一区二区三区 | 国产精品igao视频网 | 国产精品va在线观看无码 | 99久久人妻精品免费一区 | 狠狠色噜噜狠狠狠狠7777米奇 | 午夜理论片yy44880影院 | 人妻体内射精一区二区三四 | 午夜丰满少妇性开放视频 | 免费人成在线视频无码 | 日本一卡2卡3卡四卡精品网站 | 色婷婷综合激情综在线播放 | 青草视频在线播放 | 人妻少妇精品无码专区动漫 | 久久无码中文字幕免费影院蜜桃 | 成 人影片 免费观看 | 伊在人天堂亚洲香蕉精品区 | 中文字幕乱码人妻二区三区 | 性啪啪chinese东北女人 | 久激情内射婷内射蜜桃人妖 | 国产激情综合五月久久 | 日韩精品无码一区二区中文字幕 | 妺妺窝人体色www婷婷 | 国产精品久久久午夜夜伦鲁鲁 | 大乳丰满人妻中文字幕日本 | 人人妻人人澡人人爽人人精品浪潮 | 东京热一精品无码av | 少妇性l交大片欧洲热妇乱xxx | 高清不卡一区二区三区 | 又粗又大又硬又长又爽 | 又湿又紧又大又爽a视频国产 | 亚洲七七久久桃花影院 | 内射巨臀欧美在线视频 | 日日摸日日碰夜夜爽av | 国产情侣作爱视频免费观看 | 国产亚洲美女精品久久久2020 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲午夜无码久久 | 无码人妻丰满熟妇区毛片18 | 无码人妻黑人中文字幕 | 日本肉体xxxx裸交 | 久久99精品国产麻豆 | 国产精品久久久久久亚洲毛片 | 亚洲综合另类小说色区 | 少妇无码一区二区二三区 | 曰韩无码二三区中文字幕 | 日韩少妇内射免费播放 | 国产精品久久久久久亚洲毛片 | 国产激情无码一区二区 | 天堂一区人妻无码 | 国产xxx69麻豆国语对白 | 亚洲爆乳精品无码一区二区三区 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲成av人影院在线观看 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲日韩av一区二区三区四区 | 又紧又大又爽精品一区二区 | 丰满诱人的人妻3 | 中国女人内谢69xxxxxa片 | 色综合久久88色综合天天 | 亚洲 激情 小说 另类 欧美 | 欧美人妻一区二区三区 | 国产sm调教视频在线观看 | 少妇激情av一区二区 | 免费国产成人高清在线观看网站 | 久久国内精品自在自线 | 国产做国产爱免费视频 | 蜜臀aⅴ国产精品久久久国产老师 | 国产成人精品必看 | 亚洲熟女一区二区三区 | av香港经典三级级 在线 | 欧美国产日韩亚洲中文 | 97精品人妻一区二区三区香蕉 | 国产婷婷色一区二区三区在线 | 国产农村妇女高潮大叫 | 任你躁国产自任一区二区三区 | 欧美老人巨大xxxx做受 | 日日摸夜夜摸狠狠摸婷婷 | 自拍偷自拍亚洲精品10p | 激情爆乳一区二区三区 | 亚洲精品成人福利网站 | 高清不卡一区二区三区 | 亚洲s色大片在线观看 | 免费看少妇作爱视频 | 人人妻人人澡人人爽欧美一区九九 | 狠狠色丁香久久婷婷综合五月 | 高清不卡一区二区三区 | 久久亚洲国产成人精品性色 | 欧美丰满老熟妇xxxxx性 | 久久午夜无码鲁丝片午夜精品 | 国产精品毛多多水多 | 久久综合九色综合欧美狠狠 | 午夜男女很黄的视频 | 天堂а√在线地址中文在线 | 国产成人综合在线女婷五月99播放 | 亚洲欧洲中文日韩av乱码 | 女高中生第一次破苞av | 久久精品无码一区二区三区 | 中文字幕日产无线码一区 | 亚洲国产精品一区二区第一页 | 国产9 9在线 | 中文 | 麻豆人妻少妇精品无码专区 | 97精品人妻一区二区三区香蕉 | 成人片黄网站色大片免费观看 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲国产欧美国产综合一区 | 一本大道久久东京热无码av | 六十路熟妇乱子伦 | av无码不卡在线观看免费 | 18禁止看的免费污网站 | 爽爽影院免费观看 | 国产成人精品久久亚洲高清不卡 | 亚洲小说春色综合另类 | 成人无码影片精品久久久 | 天天拍夜夜添久久精品大 | 午夜福利试看120秒体验区 | 亚洲精品午夜无码电影网 | 国产成人无码午夜视频在线观看 | 亚洲中文字幕久久无码 | 国产成人av免费观看 | 免费无码av一区二区 | 99久久婷婷国产综合精品青草免费 | 久久久久99精品国产片 | 亚洲精品国产第一综合99久久 | 国产av人人夜夜澡人人爽麻豆 | 国产艳妇av在线观看果冻传媒 | 午夜精品一区二区三区在线观看 | 国产精品va在线播放 | 好男人www社区 | 午夜精品久久久久久久久 | 又大又黄又粗又爽的免费视频 | 无码国产激情在线观看 | 亚洲色无码一区二区三区 | 欧美精品一区二区精品久久 | a片在线免费观看 | 精品国产一区二区三区av 性色 | 无码人妻精品一区二区三区不卡 | 国产精品福利视频导航 | 国产精品人人爽人人做我的可爱 | 国产乱人无码伦av在线a | 亚洲精品国产品国语在线观看 | 亚洲狠狠色丁香婷婷综合 | 亚洲s码欧洲m码国产av | 牲欲强的熟妇农村老妇女 | 国产午夜无码视频在线观看 | 人人爽人人爽人人片av亚洲 | 国产农村妇女高潮大叫 | 免费视频欧美无人区码 | 大色综合色综合网站 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产精品国产三级国产专播 | 乱码av麻豆丝袜熟女系列 | 四虎国产精品免费久久 | 国产精品久久久久久亚洲毛片 | 国产后入清纯学生妹 | 牛和人交xxxx欧美 | 亚洲中文字幕无码中文字在线 | 又粗又大又硬又长又爽 | 帮老师解开蕾丝奶罩吸乳网站 | 老头边吃奶边弄进去呻吟 | 国产欧美熟妇另类久久久 | 东京热男人av天堂 | 亚洲国产欧美日韩精品一区二区三区 | 中文字幕乱码人妻无码久久 | 少妇激情av一区二区 | 美女张开腿让人桶 | 国产午夜福利100集发布 | 玩弄少妇高潮ⅹxxxyw | 亚洲色欲色欲欲www在线 | 少妇高潮喷潮久久久影院 | 无码一区二区三区在线观看 | 亚洲阿v天堂在线 | 亲嘴扒胸摸屁股激烈网站 | 天天摸天天碰天天添 | 国产乱人无码伦av在线a | 亚洲熟女一区二区三区 | 久久国产劲爆∧v内射 | 亚洲热妇无码av在线播放 | 88国产精品欧美一区二区三区 | 亚洲日韩av一区二区三区四区 | 乱码av麻豆丝袜熟女系列 | 四虎国产精品一区二区 | 中文字幕日产无线码一区 | 日本在线高清不卡免费播放 | 精品国产成人一区二区三区 | 一本大道伊人av久久综合 | 亚洲区欧美区综合区自拍区 | 国产精品久久国产精品99 | 久久久亚洲欧洲日产国码αv | 欧美猛少妇色xxxxx | 中文无码精品a∨在线观看不卡 | 熟女体下毛毛黑森林 | 国产亚洲日韩欧美另类第八页 | 性欧美videos高清精品 | 丝袜美腿亚洲一区二区 | 任你躁在线精品免费 | 中文字幕乱码人妻无码久久 | 亚洲国产精品一区二区美利坚 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产人妻精品一区二区三区 | 中文无码成人免费视频在线观看 | 亚洲va欧美va天堂v国产综合 | 在线看片无码永久免费视频 | 国产熟女一区二区三区四区五区 | 国产后入清纯学生妹 | 亚洲小说春色综合另类 | 国产 浪潮av性色四虎 | 久久久精品456亚洲影院 | 欧美xxxxx精品 | 国产成人一区二区三区在线观看 | 免费人成在线观看网站 | 亚洲精品无码国产 | 亚洲精品鲁一鲁一区二区三区 | 波多野结衣av在线观看 | 99久久99久久免费精品蜜桃 | 蜜桃av抽搐高潮一区二区 | 伊人久久大香线蕉av一区二区 | 国产sm调教视频在线观看 | 久久综合网欧美色妞网 | 最新版天堂资源中文官网 | 人妻无码αv中文字幕久久琪琪布 | 国产福利视频一区二区 | 久久精品中文字幕大胸 | 小sao货水好多真紧h无码视频 | 成人免费视频视频在线观看 免费 | 国产成人精品必看 | 亚洲国产精品久久久久久 | 亚洲国产精品成人久久蜜臀 | 丰满人妻被黑人猛烈进入 | 欧美 日韩 人妻 高清 中文 | 丰满肥臀大屁股熟妇激情视频 | 国产成人精品三级麻豆 | 精品国精品国产自在久国产87 | 性生交片免费无码看人 | 国产香蕉97碰碰久久人人 | 99久久无码一区人妻 | √天堂资源地址中文在线 | 国产疯狂伦交大片 | 欧美亚洲国产一区二区三区 | 在线欧美精品一区二区三区 | 久久人人爽人人爽人人片av高清 | 国产深夜福利视频在线 | 国产精品久久国产精品99 | 午夜精品一区二区三区的区别 | 亚洲精品成人av在线 | 亚洲乱码日产精品bd | 亚洲第一网站男人都懂 | 久久成人a毛片免费观看网站 | 人妻无码αv中文字幕久久琪琪布 | 粉嫩少妇内射浓精videos | 又大又紧又粉嫩18p少妇 | 精品成在人线av无码免费看 | 人妻有码中文字幕在线 | 亚洲精品综合五月久久小说 | 日本乱人伦片中文三区 | 97se亚洲精品一区 | 国内少妇偷人精品视频免费 | 波多野42部无码喷潮在线 | 夜先锋av资源网站 | 国产内射爽爽大片视频社区在线 | 国产猛烈高潮尖叫视频免费 | 国产精品香蕉在线观看 | 色偷偷人人澡人人爽人人模 | a片在线免费观看 | 欧美高清在线精品一区 | 无遮挡啪啪摇乳动态图 | 国产精品久久久久影院嫩草 | 日韩av无码一区二区三区不卡 | 九九在线中文字幕无码 | 国产人妻人伦精品1国产丝袜 | 中文字幕+乱码+中文字幕一区 | 乱码午夜-极国产极内射 | 国产乱子伦视频在线播放 | 在线精品国产一区二区三区 | 夜夜躁日日躁狠狠久久av | 亚洲精品国产品国语在线观看 | 欧美肥老太牲交大战 | 午夜无码区在线观看 | 亚洲色欲色欲欲www在线 | 性史性农村dvd毛片 | 国产人妻大战黑人第1集 | 无码人妻丰满熟妇区毛片18 | 欧美大屁股xxxxhd黑色 | 亚洲日韩精品欧美一区二区 | 97无码免费人妻超级碰碰夜夜 | 精品水蜜桃久久久久久久 | 亚洲欧美精品aaaaaa片 | 国产精品久久久午夜夜伦鲁鲁 | 天堂а√在线中文在线 | 天堂亚洲免费视频 | 老熟女重囗味hdxx69 | 免费中文字幕日韩欧美 | 欧美日韩一区二区免费视频 | 欧美三级不卡在线观看 | 国产在热线精品视频 | 大地资源中文第3页 | 国产av无码专区亚洲awww | 性生交片免费无码看人 | 午夜嘿嘿嘿影院 | 亚洲а∨天堂久久精品2021 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 老司机亚洲精品影院 | 男女超爽视频免费播放 | 欧美第一黄网免费网站 | 超碰97人人做人人爱少妇 | 亚洲啪av永久无码精品放毛片 | 亚洲の无码国产の无码步美 | 性做久久久久久久久 | 捆绑白丝粉色jk震动捧喷白浆 | 成 人 网 站国产免费观看 | 国产一区二区三区精品视频 | 久久午夜无码鲁丝片午夜精品 | 自拍偷自拍亚洲精品被多人伦好爽 | 强辱丰满人妻hd中文字幕 | 色五月丁香五月综合五月 | 漂亮人妻洗澡被公强 日日躁 | 免费人成在线观看网站 | 亚洲另类伦春色综合小说 | 综合激情五月综合激情五月激情1 | 人妻aⅴ无码一区二区三区 | 夜先锋av资源网站 | 久久久久久国产精品无码下载 | 亚洲精品国偷拍自产在线麻豆 | 久久久久av无码免费网 | 国产超碰人人爽人人做人人添 | 亚洲成av人在线观看网址 | 亚洲精品无码人妻无码 | 精品欧洲av无码一区二区三区 | 国内精品久久毛片一区二区 | av在线亚洲欧洲日产一区二区 | 99麻豆久久久国产精品免费 | 亚洲欧美国产精品专区久久 | 成人综合网亚洲伊人 | 又大又硬又爽免费视频 | 成 人影片 免费观看 | 亚洲 日韩 欧美 成人 在线观看 | 天天躁夜夜躁狠狠是什么心态 | 亚洲色偷偷男人的天堂 | 成熟女人特级毛片www免费 | 亚洲色大成网站www国产 | 久久精品人妻少妇一区二区三区 | 牲交欧美兽交欧美 | 久久综合香蕉国产蜜臀av | 东京热一精品无码av | 丁香花在线影院观看在线播放 | 成人精品视频一区二区三区尤物 | 久久久久99精品成人片 | 亚洲中文字幕在线无码一区二区 | 国产手机在线αⅴ片无码观看 | 午夜精品一区二区三区的区别 | 麻豆av传媒蜜桃天美传媒 | 人人爽人人爽人人片av亚洲 | 欧洲欧美人成视频在线 | 激情综合激情五月俺也去 | 九九热爱视频精品 | 内射白嫩少妇超碰 | 永久免费观看国产裸体美女 | 丝袜美腿亚洲一区二区 | 日韩精品一区二区av在线 | 内射后入在线观看一区 | 一本色道婷婷久久欧美 | 精品国产福利一区二区 | 亚洲精品鲁一鲁一区二区三区 | 国产精品久久久久久无码 | 久久综合九色综合97网 | 麻花豆传媒剧国产免费mv在线 | 久久午夜无码鲁丝片秋霞 | 大肉大捧一进一出好爽视频 | 日韩精品一区二区av在线 | 无码精品人妻一区二区三区av | 窝窝午夜理论片影院 | 99久久精品日本一区二区免费 | 欧美熟妇另类久久久久久不卡 | 亚洲精品中文字幕乱码 | 曰本女人与公拘交酡免费视频 | 亚洲乱码中文字幕在线 | 一本久久a久久精品vr综合 | аⅴ资源天堂资源库在线 | 99er热精品视频 | 牲欲强的熟妇农村老妇女 | 水蜜桃亚洲一二三四在线 | 亚洲 另类 在线 欧美 制服 | 男人的天堂av网站 | 国产偷国产偷精品高清尤物 | 7777奇米四色成人眼影 | 国产精品久久久久久无码 | 中文字幕人妻丝袜二区 | 欧美精品一区二区精品久久 | 成人精品视频一区二区 | 人妻无码αv中文字幕久久琪琪布 | 亚洲精品一区三区三区在线观看 | 东京热无码av男人的天堂 | 国产精品人人妻人人爽 | 精品无码成人片一区二区98 | 全黄性性激高免费视频 | 亚洲欧美日韩成人高清在线一区 | 久久午夜无码鲁丝片 | 久久伊人色av天堂九九小黄鸭 | 特级做a爰片毛片免费69 | 国产农村乱对白刺激视频 | 98国产精品综合一区二区三区 | 影音先锋中文字幕无码 | 亚洲自偷自拍另类第1页 | 国产一区二区三区精品视频 | 国产精品办公室沙发 | 亚洲の无码国产の无码步美 | 1000部夫妻午夜免费 | 男人扒开女人内裤强吻桶进去 | 澳门永久av免费网站 | 5858s亚洲色大成网站www | 国产乱人伦av在线无码 | 国产亚洲精品久久久闺蜜 | 精品国产av色一区二区深夜久久 | 亚洲人成影院在线观看 | 色一情一乱一伦一视频免费看 | 日本护士xxxxhd少妇 | 5858s亚洲色大成网站www | 最近中文2019字幕第二页 | 国产情侣作爱视频免费观看 | 国内少妇偷人精品视频 | 国产亚洲精品久久久久久久 | 理论片87福利理论电影 | 无码人妻精品一区二区三区不卡 | 成人aaa片一区国产精品 | 熟女体下毛毛黑森林 | 国内精品人妻无码久久久影院 | 欧美怡红院免费全部视频 | 性欧美牲交在线视频 | 丝袜美腿亚洲一区二区 | 荫蒂被男人添的好舒服爽免费视频 | 超碰97人人做人人爱少妇 | 99riav国产精品视频 | 欧美三级a做爰在线观看 | 无码福利日韩神码福利片 | 疯狂三人交性欧美 | 国产猛烈高潮尖叫视频免费 | 中文字幕色婷婷在线视频 | 久久久精品人妻久久影视 | 青春草在线视频免费观看 | 亚洲va欧美va天堂v国产综合 | 蜜桃臀无码内射一区二区三区 | 日本大乳高潮视频在线观看 | 国产综合在线观看 | 国产人妻精品一区二区三区 | 中文字幕乱码人妻无码久久 | 久久精品视频在线看15 | 色偷偷人人澡人人爽人人模 | 国产色视频一区二区三区 | 国产特级毛片aaaaaa高潮流水 | 377p欧洲日本亚洲大胆 | 久久综合久久自在自线精品自 | 成人女人看片免费视频放人 | 国产熟女一区二区三区四区五区 | 日本免费一区二区三区最新 | 国产亲子乱弄免费视频 | a在线观看免费网站大全 | 精品无码av一区二区三区 | 麻豆国产人妻欲求不满谁演的 | 精品国产精品久久一区免费式 | 18禁黄网站男男禁片免费观看 | 丝袜足控一区二区三区 | 牲欲强的熟妇农村老妇女视频 | 国产麻豆精品精东影业av网站 | 亚洲人成网站在线播放942 | 在线播放无码字幕亚洲 | 强辱丰满人妻hd中文字幕 | 亚洲经典千人经典日产 | 国产一区二区三区影院 | 亚洲爆乳大丰满无码专区 | 国产成人无码区免费内射一片色欲 | 国产绳艺sm调教室论坛 | 国产精品资源一区二区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 一本无码人妻在中文字幕免费 | 一本加勒比波多野结衣 | 成人av无码一区二区三区 | 午夜福利电影 | 亚洲人成网站在线播放942 | a在线观看免费网站大全 | 色老头在线一区二区三区 | 伊人久久大香线蕉午夜 | 无码一区二区三区在线 | 欧美亚洲国产一区二区三区 | 欧美人妻一区二区三区 | 日本高清一区免费中文视频 | 少妇无码av无码专区在线观看 | 亚洲国产av美女网站 | 国产国语老龄妇女a片 | 妺妺窝人体色www在线小说 | 综合人妻久久一区二区精品 | 精品国产一区av天美传媒 | 给我免费的视频在线观看 | 又粗又大又硬又长又爽 | 欧美怡红院免费全部视频 | 狠狠cao日日穞夜夜穞av | 人妻人人添人妻人人爱 | 中文字幕无码日韩专区 | 无码吃奶揉捏奶头高潮视频 | 在线观看免费人成视频 | 日本丰满熟妇videos | 男人和女人高潮免费网站 | 图片区 小说区 区 亚洲五月 | 日本大乳高潮视频在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 鲁一鲁av2019在线 | 无码人中文字幕 | 九月婷婷人人澡人人添人人爽 | 全球成人中文在线 | 国产精品无码久久av | 国产亚av手机在线观看 | 日本一本二本三区免费 | 国产精品a成v人在线播放 | 少妇人妻大乳在线视频 | 小sao货水好多真紧h无码视频 | 大胆欧美熟妇xx | 2020久久香蕉国产线看观看 | 国产熟妇高潮叫床视频播放 | 国产肉丝袜在线观看 | 午夜精品久久久久久久久 | 国产精品丝袜黑色高跟鞋 | 亚洲熟熟妇xxxx | 丰腴饱满的极品熟妇 | 一区二区三区乱码在线 | 欧洲 | 永久免费观看国产裸体美女 | 麻豆国产人妻欲求不满 | 成年美女黄网站色大免费视频 | 丰满人妻精品国产99aⅴ | 天天躁夜夜躁狠狠是什么心态 | 精品国产精品久久一区免费式 | 欧美亚洲国产一区二区三区 | 国产精品国产三级国产专播 | 国产精品二区一区二区aⅴ污介绍 | 国产人妻精品一区二区三区不卡 | 乱人伦人妻中文字幕无码 | 熟妇人妻中文av无码 | 亚洲va中文字幕无码久久不卡 | 熟妇人妻中文av无码 | 人妻人人添人妻人人爱 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲国产一区二区三区在线观看 | 国产精品久久久久7777 | 久久99精品国产麻豆蜜芽 | 无码吃奶揉捏奶头高潮视频 | 又粗又大又硬毛片免费看 | 波多野结衣乳巨码无在线观看 | www国产亚洲精品久久久日本 | 中文字幕人妻无码一区二区三区 | 欧美自拍另类欧美综合图片区 | 久青草影院在线观看国产 | 99视频精品全部免费免费观看 | 亚洲综合久久一区二区 | 成人精品一区二区三区中文字幕 | 少妇性l交大片 | 成人免费视频在线观看 | 国产绳艺sm调教室论坛 | 中文无码精品a∨在线观看不卡 | 日韩av无码一区二区三区不卡 | 久久精品丝袜高跟鞋 | 99久久婷婷国产综合精品青草免费 | 亚洲综合精品香蕉久久网 | 亚洲精品久久久久avwww潮水 | 免费人成网站视频在线观看 | 人人澡人人妻人人爽人人蜜桃 | 国产一区二区三区日韩精品 | 国内老熟妇对白xxxxhd | 欧美日本精品一区二区三区 | 国产亚洲人成a在线v网站 | а天堂中文在线官网 | 亚洲成av人在线观看网址 | 亚洲欧美国产精品久久 | 99国产欧美久久久精品 | 国产又粗又硬又大爽黄老大爷视 | 丁香啪啪综合成人亚洲 | 国产偷抇久久精品a片69 | 色综合久久久久综合一本到桃花网 | 亚洲一区av无码专区在线观看 | 俄罗斯老熟妇色xxxx | 国产三级精品三级男人的天堂 | 99久久久无码国产精品免费 | 婷婷五月综合缴情在线视频 | 亚洲欧美中文字幕5发布 | 人人澡人人妻人人爽人人蜜桃 | 天天燥日日燥 | 欧美阿v高清资源不卡在线播放 | 大肉大捧一进一出好爽视频 | 国产亚洲人成a在线v网站 | 国产成人综合色在线观看网站 | 精品厕所偷拍各类美女tp嘘嘘 | 青青青手机频在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 成人影院yy111111在线观看 | 色 综合 欧美 亚洲 国产 | 精品久久久无码中文字幕 | 97人妻精品一区二区三区 | 免费无码午夜福利片69 | 131美女爱做视频 | 少妇久久久久久人妻无码 | 波多野结衣aⅴ在线 | 亚洲色偷偷男人的天堂 | 亚洲一区av无码专区在线观看 | 无码av中文字幕免费放 | 天天躁夜夜躁狠狠是什么心态 | 狂野欧美性猛xxxx乱大交 | 亚洲伊人久久精品影院 | 日本一区二区三区免费高清 | 九月婷婷人人澡人人添人人爽 | 久久精品国产一区二区三区肥胖 | 人人妻人人澡人人爽精品欧美 | 伦伦影院午夜理论片 | 欧美日韩一区二区免费视频 | 久久精品国产一区二区三区肥胖 | 久久婷婷五月综合色国产香蕉 | 理论片87福利理论电影 | 人妻互换免费中文字幕 | 免费看少妇作爱视频 | 久久久久成人精品免费播放动漫 | 免费国产黄网站在线观看 | 中文字幕无码热在线视频 | а天堂中文在线官网 | 欧美乱妇无乱码大黄a片 | 老头边吃奶边弄进去呻吟 | 人妻无码αv中文字幕久久琪琪布 | 黑人玩弄人妻中文在线 | 精品国产一区二区三区四区 | 国产九九九九九九九a片 | 欧美35页视频在线观看 | 中文字幕乱码亚洲无线三区 | 国产亚洲精品久久久闺蜜 | 1000部啪啪未满十八勿入下载 | 久久久中文字幕日本无吗 | 欧美性黑人极品hd | 内射巨臀欧美在线视频 | 久久人人爽人人人人片 | 夜先锋av资源网站 | 少妇厨房愉情理9仑片视频 | 亚洲精品成a人在线观看 | 成人免费视频视频在线观看 免费 | 麻豆国产人妻欲求不满 | 国产九九九九九九九a片 | 成人一在线视频日韩国产 | 国产精品久久国产三级国 | 水蜜桃亚洲一二三四在线 | 日本熟妇乱子伦xxxx | 国产激情无码一区二区 | 亚洲aⅴ无码成人网站国产app | av人摸人人人澡人人超碰下载 | 最近免费中文字幕中文高清百度 | 久久久精品人妻久久影视 | а√天堂www在线天堂小说 | 99精品视频在线观看免费 | 日韩精品a片一区二区三区妖精 | 亚洲国精产品一二二线 | aⅴ亚洲 日韩 色 图网站 播放 | 性开放的女人aaa片 | 少妇性l交大片欧洲热妇乱xxx | 亚洲成av人影院在线观看 | 国产情侣作爱视频免费观看 | 少妇久久久久久人妻无码 | 久久午夜无码鲁丝片秋霞 | 国产办公室秘书无码精品99 | 熟妇人妻中文av无码 | 国内精品一区二区三区不卡 | 国产激情精品一区二区三区 | 在线视频网站www色 | 丰满少妇女裸体bbw | 久久精品国产一区二区三区 | 日韩精品成人一区二区三区 | 麻豆人妻少妇精品无码专区 | 特级做a爰片毛片免费69 | 国产熟妇另类久久久久 | 99久久人妻精品免费一区 | 欧美激情一区二区三区成人 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲国精产品一二二线 | 国产午夜无码精品免费看 | 东北女人啪啪对白 | 精品一区二区不卡无码av | 夜夜躁日日躁狠狠久久av | 性色av无码免费一区二区三区 | 中国大陆精品视频xxxx | 青青青手机频在线观看 | 国产精品美女久久久网av | 精品一区二区三区无码免费视频 | 国产农村妇女高潮大叫 | 中文字幕无码免费久久9一区9 | 色婷婷av一区二区三区之红樱桃 | 97久久精品无码一区二区 | 国产一精品一av一免费 | 中国大陆精品视频xxxx | 无套内射视频囯产 | 亚洲精品一区二区三区在线 | 六十路熟妇乱子伦 | 影音先锋中文字幕无码 | 欧美丰满熟妇xxxx性ppx人交 | 我要看www免费看插插视频 | 亚洲成av人在线观看网址 | 黑人玩弄人妻中文在线 | 98国产精品综合一区二区三区 | 久久久精品456亚洲影院 | 大地资源网第二页免费观看 | 国产口爆吞精在线视频 | 精品无人国产偷自产在线 | 少妇人妻av毛片在线看 | 国内综合精品午夜久久资源 | 欧美野外疯狂做受xxxx高潮 | 久久国内精品自在自线 | 内射欧美老妇wbb | 国产午夜无码视频在线观看 | 一本久道久久综合婷婷五月 | 亚洲精品一区二区三区大桥未久 | 无套内谢的新婚少妇国语播放 | 国产一区二区三区精品视频 | 宝宝好涨水快流出来免费视频 | 成人欧美一区二区三区黑人免费 | 小sao货水好多真紧h无码视频 | 亚洲日韩一区二区三区 | 少妇厨房愉情理9仑片视频 | 中文字幕人妻无码一区二区三区 | 午夜精品久久久内射近拍高清 | 亚洲一区二区三区香蕉 | 色婷婷欧美在线播放内射 | 强辱丰满人妻hd中文字幕 | 国产亚洲欧美日韩亚洲中文色 | 精品国产国产综合精品 | 人妻体内射精一区二区三四 | 国产性生交xxxxx无码 | 人人超人人超碰超国产 | 狠狠色噜噜狠狠狠狠7777米奇 | 日韩av无码中文无码电影 | 国产真实伦对白全集 | 色妞www精品免费视频 | 亚洲精品久久久久中文第一幕 | 久久久久免费精品国产 | 永久黄网站色视频免费直播 | 性欧美牲交在线视频 | 欧美亚洲日韩国产人成在线播放 | 人妻插b视频一区二区三区 | 男女爱爱好爽视频免费看 | 国产色精品久久人妻 | 水蜜桃亚洲一二三四在线 | 国产成人精品久久亚洲高清不卡 | 久久亚洲a片com人成 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 男人和女人高潮免费网站 | 国产精品亚洲lv粉色 | 亚洲精品欧美二区三区中文字幕 | 国产69精品久久久久app下载 | 久久国产精品萌白酱免费 | 99久久99久久免费精品蜜桃 | 国产无套内射久久久国产 | 最近免费中文字幕中文高清百度 | 精品日本一区二区三区在线观看 | 又大又紧又粉嫩18p少妇 | 国产三级精品三级男人的天堂 | 久久精品人妻少妇一区二区三区 | 狂野欧美性猛xxxx乱大交 | √天堂资源地址中文在线 | 中文字幕日产无线码一区 | 99久久精品日本一区二区免费 | 在线观看国产一区二区三区 | 国产激情艳情在线看视频 | 久久精品女人天堂av免费观看 | 俺去俺来也www色官网 | 精品久久久无码中文字幕 | 蜜臀av无码人妻精品 | 老熟妇仑乱视频一区二区 | 又大又紧又粉嫩18p少妇 | 欧美放荡的少妇 | 国产真实乱对白精彩久久 | 国产精品亚洲综合色区韩国 | 欧美黑人巨大xxxxx | 国产精品亚洲专区无码不卡 | 中文精品无码中文字幕无码专区 | 国产艳妇av在线观看果冻传媒 | 一区二区三区乱码在线 | 欧洲 | 人人澡人人妻人人爽人人蜜桃 | 久久这里只有精品视频9 | 伊人久久婷婷五月综合97色 | 激情内射亚州一区二区三区爱妻 | 亚洲国产精品美女久久久久 | 国产熟女一区二区三区四区五区 | 精品aⅴ一区二区三区 | 亚洲高清偷拍一区二区三区 | 午夜精品久久久久久久 | 天天摸天天碰天天添 | 露脸叫床粗话东北少妇 | 亚洲国产午夜精品理论片 | 亚洲午夜久久久影院 | 亚洲а∨天堂久久精品2021 | 99久久99久久免费精品蜜桃 | 无码免费一区二区三区 | 亚洲成av人在线观看网址 | 无码乱肉视频免费大全合集 | 亚洲色成人中文字幕网站 | 天堂а√在线地址中文在线 | 亚洲爆乳大丰满无码专区 | 中文字幕无码免费久久9一区9 | 久久人妻内射无码一区三区 | 亚洲呦女专区 | 久久精品无码一区二区三区 | 婷婷五月综合缴情在线视频 | 亚洲成av人片在线观看无码不卡 | 国产极品视觉盛宴 | 清纯唯美经典一区二区 | 成人毛片一区二区 | 国产亚洲精品精品国产亚洲综合 | 亚洲区欧美区综合区自拍区 | 亚洲精品久久久久久久久久久 | 最近的中文字幕在线看视频 | 亚洲综合久久一区二区 | 国内少妇偷人精品视频 | 精品无码成人片一区二区98 | 亚洲中文无码av永久不收费 | 偷窥日本少妇撒尿chinese | 午夜成人1000部免费视频 | 色老头在线一区二区三区 | 天天躁日日躁狠狠躁免费麻豆 | 色偷偷人人澡人人爽人人模 | 欧美老人巨大xxxx做受 | 精品aⅴ一区二区三区 | 久久精品人妻少妇一区二区三区 | 色一情一乱一伦 | 少妇的肉体aa片免费 | 人人妻人人澡人人爽欧美一区 | 亚洲 激情 小说 另类 欧美 | 日韩精品一区二区av在线 | 亚洲第一网站男人都懂 | 亚洲 a v无 码免 费 成 人 a v | 国产午夜视频在线观看 | 国产精品高潮呻吟av久久4虎 | 香蕉久久久久久av成人 | 在线精品亚洲一区二区 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久久www成人免费毛片 | 日韩视频 中文字幕 视频一区 | av在线亚洲欧洲日产一区二区 | 色婷婷久久一区二区三区麻豆 | 老熟妇乱子伦牲交视频 | 无码av最新清无码专区吞精 | 少妇无码av无码专区在线观看 | 精品 日韩 国产 欧美 视频 | 欧美自拍另类欧美综合图片区 | 无码国产色欲xxxxx视频 | 久久精品女人天堂av免费观看 | 色欲久久久天天天综合网精品 | 亚洲中文字幕无码中字 | 在线a亚洲视频播放在线观看 | av在线亚洲欧洲日产一区二区 | 亚洲欧美日韩成人高清在线一区 | 麻豆av传媒蜜桃天美传媒 | 天堂亚洲2017在线观看 | 亚洲精品中文字幕久久久久 | 欧美三级不卡在线观看 | 免费中文字幕日韩欧美 | 亚洲中文字幕成人无码 | 人人妻在人人 | 人妻尝试又大又粗久久 | 无码播放一区二区三区 | 国产人妻大战黑人第1集 | 久久精品成人欧美大片 | 亚洲国产综合无码一区 | 熟妇人妻中文av无码 | 性欧美大战久久久久久久 | 老熟妇仑乱视频一区二区 | 澳门永久av免费网站 | 欧美老熟妇乱xxxxx | 天天做天天爱天天爽综合网 | 国内精品一区二区三区不卡 | 亚洲成a人片在线观看日本 | 国产亚洲精品久久久久久久久动漫 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国内精品九九久久久精品 | 女人被爽到呻吟gif动态图视看 | 亚洲男人av天堂午夜在 | a片在线免费观看 | 亚洲а∨天堂久久精品2021 | 日本一区二区三区免费高清 | 精品一区二区三区无码免费视频 | 国产精品怡红院永久免费 | 老头边吃奶边弄进去呻吟 | 久久久久久av无码免费看大片 | 国产超碰人人爽人人做人人添 | 国产两女互慰高潮视频在线观看 | 啦啦啦www在线观看免费视频 | 无码av免费一区二区三区试看 | 波多野结衣av在线观看 | 极品嫩模高潮叫床 | 亚欧洲精品在线视频免费观看 | 午夜不卡av免费 一本久久a久久精品vr综合 | 97无码免费人妻超级碰碰夜夜 | 国产精品手机免费 | 亚洲精品一区二区三区大桥未久 | 国产尤物精品视频 | 国产成人无码专区 | 在线精品亚洲一区二区 | 国产在线精品一区二区三区直播 | 色诱久久久久综合网ywww | 无码免费一区二区三区 | 亚洲精品无码人妻无码 | 成人亚洲精品久久久久 | 欧美人与禽zoz0性伦交 | 久久精品成人欧美大片 | 日日干夜夜干 | 国产成人一区二区三区别 | 学生妹亚洲一区二区 | 亚洲欧美中文字幕5发布 | 成人欧美一区二区三区 | 1000部啪啪未满十八勿入下载 | 人人妻人人澡人人爽精品欧美 | 日韩欧美中文字幕公布 | 国产av剧情md精品麻豆 | 免费男性肉肉影院 | 永久免费观看美女裸体的网站 | 久久国产精品_国产精品 | a在线亚洲男人的天堂 | 国产一区二区三区日韩精品 | 99国产欧美久久久精品 | 国产三级久久久精品麻豆三级 | 超碰97人人做人人爱少妇 | 亚洲精品午夜国产va久久成人 | 欧美日韩一区二区三区自拍 | 国产suv精品一区二区五 | 人人妻人人澡人人爽人人精品 | 中文字幕乱码中文乱码51精品 | 亚洲中文字幕无码中文字在线 | 无套内射视频囯产 | 亚洲成av人影院在线观看 | 欧美日韩人成综合在线播放 | 超碰97人人做人人爱少妇 | 日本精品高清一区二区 | 偷窥村妇洗澡毛毛多 | 熟女少妇人妻中文字幕 | 一本精品99久久精品77 | 乱人伦人妻中文字幕无码 | av无码电影一区二区三区 | 99re在线播放 | 伊人久久大香线蕉午夜 | 丰满少妇熟乱xxxxx视频 | 丰满少妇女裸体bbw | 4hu四虎永久在线观看 | 国产精品多人p群无码 | 久久人人97超碰a片精品 | 国产午夜福利100集发布 | 久久久久久av无码免费看大片 | 国产精品.xx视频.xxtv | 国产农村乱对白刺激视频 | 国产麻豆精品一区二区三区v视界 | 亚洲成av人影院在线观看 | 久久午夜无码鲁丝片午夜精品 | 鲁一鲁av2019在线 | 一本久道久久综合狠狠爱 | 亚洲中文字幕无码中文字在线 | 亚洲七七久久桃花影院 | 2020最新国产自产精品 | 亚洲熟女一区二区三区 | 午夜福利试看120秒体验区 | 中文字幕无码av波多野吉衣 | 国产超级va在线观看视频 | 人妻少妇精品视频专区 | www成人国产高清内射 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲高清偷拍一区二区三区 | 精品无码国产一区二区三区av | 国产黄在线观看免费观看不卡 | 亚洲色欲色欲欲www在线 | 夫妻免费无码v看片 | 东京无码熟妇人妻av在线网址 | 中文字幕日产无线码一区 | 国产午夜无码视频在线观看 | 爆乳一区二区三区无码 | 丰满人妻被黑人猛烈进入 | 日本成熟视频免费视频 | 波多野结衣aⅴ在线 | 国产两女互慰高潮视频在线观看 | a片在线免费观看 | 国产午夜手机精彩视频 | 欧美性色19p | 久久精品人人做人人综合 | 日日夜夜撸啊撸 | 国产精品igao视频网 | 色一情一乱一伦 | 乱码av麻豆丝袜熟女系列 | 99久久亚洲精品无码毛片 | 日本护士毛茸茸高潮 | 亚洲a无码综合a国产av中文 | 久青草影院在线观看国产 | 亚洲国产精华液网站w | 国产精品久久久久久亚洲影视内衣 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 欧美熟妇另类久久久久久多毛 | 久久久久久久人妻无码中文字幕爆 | 亚洲国产精品一区二区美利坚 | 免费观看激色视频网站 | 人妻天天爽夜夜爽一区二区 | 中文字幕乱码亚洲无线三区 | 国产成人一区二区三区在线观看 | 亚洲人交乣女bbw | 18精品久久久无码午夜福利 | 国产成人无码一二三区视频 | 国产精品久久久一区二区三区 | 亚洲高清偷拍一区二区三区 | 精品国产一区二区三区四区在线看 | 牛和人交xxxx欧美 | 国产真实伦对白全集 | 亚洲熟妇自偷自拍另类 | 人人妻人人澡人人爽人人精品浪潮 | 正在播放老肥熟妇露脸 | 亚洲精品国产精品乱码视色 | 免费观看激色视频网站 | 人人澡人人透人人爽 | 女人色极品影院 | 精品国产aⅴ无码一区二区 | 在教室伦流澡到高潮hnp视频 | 亚洲s码欧洲m码国产av | 强开小婷嫩苞又嫩又紧视频 | 老司机亚洲精品影院 | 成人试看120秒体验区 | 狂野欧美性猛交免费视频 | 999久久久国产精品消防器材 | 欧美怡红院免费全部视频 | 国产精品第一国产精品 | 人人爽人人澡人人人妻 | 国产精品久久久一区二区三区 | 99麻豆久久久国产精品免费 | 久久久久久久人妻无码中文字幕爆 | 久久久久久久人妻无码中文字幕爆 | 国内精品久久毛片一区二区 | 久久久中文久久久无码 | 在线观看国产午夜福利片 | 55夜色66夜色国产精品视频 | 亚洲午夜久久久影院 | 强开小婷嫩苞又嫩又紧视频 | 乌克兰少妇xxxx做受 | 欧美人与物videos另类 | 天天拍夜夜添久久精品 | 老头边吃奶边弄进去呻吟 | 狠狠色欧美亚洲狠狠色www | 精品一二三区久久aaa片 | 国产精品高潮呻吟av久久4虎 | 成人影院yy111111在线观看 | 国产精品久久久久9999小说 | 少妇的肉体aa片免费 | 国产av一区二区精品久久凹凸 | 99久久精品无码一区二区毛片 | 久久综合九色综合欧美狠狠 | 乱人伦中文视频在线观看 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲日韩av片在线观看 | 国产精品18久久久久久麻辣 | 国产黄在线观看免费观看不卡 | 亚洲成a人片在线观看无码 | 黑人巨大精品欧美黑寡妇 | 夜先锋av资源网站 | 奇米影视7777久久精品人人爽 | 亚洲色www成人永久网址 | 四虎国产精品一区二区 | 宝宝好涨水快流出来免费视频 | 日产精品高潮呻吟av久久 | 特级做a爰片毛片免费69 | 无套内谢的新婚少妇国语播放 | 亚洲国产av精品一区二区蜜芽 | 少妇被黑人到高潮喷出白浆 | √天堂资源地址中文在线 | 澳门永久av免费网站 | 特黄特色大片免费播放器图片 | 国产麻豆精品精东影业av网站 | 色一情一乱一伦一视频免费看 | 波多野结衣av一区二区全免费观看 | 精品日本一区二区三区在线观看 | 久久精品一区二区三区四区 | 国产成人一区二区三区别 | 免费播放一区二区三区 | 日本爽爽爽爽爽爽在线观看免 | 夜先锋av资源网站 | 强伦人妻一区二区三区视频18 | 欧美日韩综合一区二区三区 | aⅴ在线视频男人的天堂 | 欧美国产亚洲日韩在线二区 | 精品人人妻人人澡人人爽人人 | 欧美 丝袜 自拍 制服 另类 | 日日碰狠狠躁久久躁蜜桃 | 国产精品久久久 | 亚洲色欲久久久综合网东京热 | 色综合久久久久综合一本到桃花网 | 九月婷婷人人澡人人添人人爽 | 欧美性生交xxxxx久久久 | 美女极度色诱视频国产 | 99久久精品午夜一区二区 | 性色欲网站人妻丰满中文久久不卡 | 啦啦啦www在线观看免费视频 | 熟妇人妻无乱码中文字幕 | 精品无人区无码乱码毛片国产 | 精品无码一区二区三区的天堂 | 亚洲精品中文字幕乱码 | 亚洲乱码中文字幕在线 | 国产性生交xxxxx无码 | 97资源共享在线视频 | 亚洲精品午夜国产va久久成人 | 国产乱子伦视频在线播放 | 日日摸天天摸爽爽狠狠97 | 国产精品无套呻吟在线 | 婷婷五月综合激情中文字幕 | 国产莉萝无码av在线播放 | 性欧美牲交在线视频 | 亚洲国产精品久久人人爱 | 人妻插b视频一区二区三区 | 欧美怡红院免费全部视频 | av在线亚洲欧洲日产一区二区 | 欧美xxxx黑人又粗又长 | 亚洲精品久久久久中文第一幕 | 欧洲精品码一区二区三区免费看 | 一二三四社区在线中文视频 | 国内综合精品午夜久久资源 | 99精品视频在线观看免费 | 无码吃奶揉捏奶头高潮视频 | 亚洲精品无码人妻无码 | 国产精品久久久av久久久 | 秋霞成人午夜鲁丝一区二区三区 | 九九久久精品国产免费看小说 | 俺去俺来也www色官网 | 精品国产一区av天美传媒 | 亚洲爆乳精品无码一区二区三区 | 风流少妇按摩来高潮 | 国产精品久久久久久亚洲毛片 | 欧美亚洲日韩国产人成在线播放 | 精品国偷自产在线视频 | 午夜丰满少妇性开放视频 | 欧美一区二区三区 | 国产精品嫩草久久久久 | 亚洲色无码一区二区三区 | 国产办公室秘书无码精品99 | 国产69精品久久久久app下载 | 国产av人人夜夜澡人人爽麻豆 | 大乳丰满人妻中文字幕日本 | 亚洲精品午夜国产va久久成人 | 小泽玛莉亚一区二区视频在线 | 嫩b人妻精品一区二区三区 | 国产又爽又猛又粗的视频a片 | 麻豆精品国产精华精华液好用吗 | 国产亚洲美女精品久久久2020 | 水蜜桃亚洲一二三四在线 | 久久五月精品中文字幕 | 国产口爆吞精在线视频 | 国产精品对白交换视频 | 18禁黄网站男男禁片免费观看 | 日本精品人妻无码免费大全 | 亚洲精品久久久久中文第一幕 | 欧美日韩精品 | 樱花草在线社区www | 18禁止看的免费污网站 | 亚洲成a人片在线观看无码 | 国产精品国产自线拍免费软件 | 2019nv天堂香蕉在线观看 | www国产精品内射老师 | 夜先锋av资源网站 | 亚洲精品综合一区二区三区在线 | 大胆欧美熟妇xx | 曰本女人与公拘交酡免费视频 | 丰满少妇弄高潮了www | 野外少妇愉情中文字幕 | 一本久久a久久精品亚洲 | 国产成人精品三级麻豆 | 强奷人妻日本中文字幕 | 精品久久久久久人妻无码中文字幕 | 精品久久久无码中文字幕 | 久久综合给久久狠狠97色 | 久在线观看福利视频 | 在线成人www免费观看视频 | 天天做天天爱天天爽综合网 | 亚洲色大成网站www国产 | 三级4级全黄60分钟 | 久久国产劲爆∧v内射 | 久久国产精品_国产精品 | 国产乱子伦视频在线播放 | 成人免费视频一区二区 | 极品尤物被啪到呻吟喷水 | 国产午夜福利100集发布 | 成 人 免费观看网站 | 成人无码视频在线观看网站 | 国产精品爱久久久久久久 | 亚洲毛片av日韩av无码 | 久久 国产 尿 小便 嘘嘘 | 欧美亚洲日韩国产人成在线播放 | 国产在线精品一区二区三区直播 | а√天堂www在线天堂小说 | 扒开双腿吃奶呻吟做受视频 | 国产超碰人人爽人人做人人添 | 免费国产黄网站在线观看 | 露脸叫床粗话东北少妇 | 美女扒开屁股让男人桶 | 在线天堂新版最新版在线8 | 亚洲 欧美 激情 小说 另类 | 亚洲欧美日韩成人高清在线一区 | 人人妻人人澡人人爽欧美一区九九 | 午夜男女很黄的视频 | 欧美日本免费一区二区三区 | 亚洲小说春色综合另类 | a片在线免费观看 | 大地资源网第二页免费观看 | 中文字幕无线码免费人妻 | 国产高清av在线播放 | 无码人妻出轨黑人中文字幕 | 色婷婷av一区二区三区之红樱桃 | 亚洲日本va午夜在线电影 | 青青青手机频在线观看 | 免费看少妇作爱视频 | 女人被男人爽到呻吟的视频 | 又粗又大又硬毛片免费看 | 免费网站看v片在线18禁无码 | 男人的天堂2018无码 | 日本丰满护士爆乳xxxx | 亚洲欧美色中文字幕在线 | 骚片av蜜桃精品一区 | 免费看男女做好爽好硬视频 | 亚洲人成影院在线观看 | 日本又色又爽又黄的a片18禁 | 色诱久久久久综合网ywww | 久9re热视频这里只有精品 | 夫妻免费无码v看片 | 天天躁日日躁狠狠躁免费麻豆 | 高潮毛片无遮挡高清免费视频 | 久久久国产一区二区三区 | 午夜熟女插插xx免费视频 | 久青草影院在线观看国产 | 青青久在线视频免费观看 | 久久久av男人的天堂 | 啦啦啦www在线观看免费视频 | 97色伦图片97综合影院 | 午夜丰满少妇性开放视频 | 久久久久人妻一区精品色欧美 | 国产女主播喷水视频在线观看 | 天堂а√在线地址中文在线 | 国产在线一区二区三区四区五区 | 综合人妻久久一区二区精品 | 精品熟女少妇av免费观看 | 久久人人爽人人人人片 | 亚洲 另类 在线 欧美 制服 | 国产美女精品一区二区三区 | 亚洲中文字幕成人无码 | 国产一区二区不卡老阿姨 | 国产精品亚洲lv粉色 | 亚洲爆乳无码专区 | 国产亚av手机在线观看 | 国产精品久久久久7777 | 国产成人无码av一区二区 | 国产亚洲欧美日韩亚洲中文色 | 国产亚洲美女精品久久久2020 | 丰满少妇弄高潮了www | 精品一区二区不卡无码av | 欧美日韩精品 | 在线观看免费人成视频 | 午夜无码区在线观看 | 亚洲经典千人经典日产 | 黑人巨大精品欧美一区二区 | 一本色道婷婷久久欧美 | 无码av最新清无码专区吞精 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲精品国产第一综合99久久 | 亚洲色欲色欲天天天www | 99久久久无码国产精品免费 | 国产超级va在线观看视频 | yw尤物av无码国产在线观看 | 欧美三级a做爰在线观看 | 在线亚洲高清揄拍自拍一品区 | 内射后入在线观看一区 | 亚洲一区av无码专区在线观看 | 性欧美牲交xxxxx视频 | 欧美真人作爱免费视频 | 无码一区二区三区在线观看 | 国产熟女一区二区三区四区五区 | 亚洲国产精华液网站w | 成熟女人特级毛片www免费 | 国产激情艳情在线看视频 | 精品少妇爆乳无码av无码专区 | 日本又色又爽又黄的a片18禁 | 精品欧美一区二区三区久久久 | 天天摸天天透天天添 | 成在人线av无码免费 | 精品午夜福利在线观看 | 欧美黑人巨大xxxxx | 国产成人无码区免费内射一片色欲 | 亚洲国产欧美日韩精品一区二区三区 | 55夜色66夜色国产精品视频 | 1000部啪啪未满十八勿入下载 | 色欲人妻aaaaaaa无码 | 日本饥渴人妻欲求不满 | 男女作爱免费网站 | 国产精品办公室沙发 | 无遮挡国产高潮视频免费观看 | 午夜福利试看120秒体验区 | 午夜熟女插插xx免费视频 | 亚洲综合色区中文字幕 | www国产亚洲精品久久网站 | 亚洲の无码国产の无码步美 | 国产精品爱久久久久久久 | 九月婷婷人人澡人人添人人爽 | 亚洲欧洲日本无在线码 | 给我免费的视频在线观看 | 麻豆蜜桃av蜜臀av色欲av | 国产成人无码专区 | 4hu四虎永久在线观看 | 色五月丁香五月综合五月 | 国产无遮挡又黄又爽免费视频 | 亚洲热妇无码av在线播放 | 无码午夜成人1000部免费视频 | 国产精品成人av在线观看 | 国产精品二区一区二区aⅴ污介绍 | 永久免费观看国产裸体美女 | 东北女人啪啪对白 | 高清无码午夜福利视频 | 日本高清一区免费中文视频 | 黑人巨大精品欧美一区二区 | 欧美亚洲日韩国产人成在线播放 | 久久人妻内射无码一区三区 | 久久熟妇人妻午夜寂寞影院 | 亚洲人成人无码网www国产 | 久久99久久99精品中文字幕 | 欧美三级a做爰在线观看 | 少妇厨房愉情理9仑片视频 | 天海翼激烈高潮到腰振不止 | 亚洲精品一区二区三区在线 | 国产成人无码专区 | 日韩在线不卡免费视频一区 | 无码精品人妻一区二区三区av | 美女黄网站人色视频免费国产 | 中文字幕无码乱人伦 | 夜夜夜高潮夜夜爽夜夜爰爰 | 人妻无码αv中文字幕久久琪琪布 | 男女作爱免费网站 | 日韩人妻少妇一区二区三区 | 日日天干夜夜狠狠爱 | 女人被男人爽到呻吟的视频 | 久久精品无码一区二区三区 | 久久精品国产亚洲精品 | 亚洲精品一区二区三区四区五区 | 亚洲乱亚洲乱妇50p | 撕开奶罩揉吮奶头视频 | www国产精品内射老师 | 99久久久国产精品无码免费 | 妺妺窝人体色www婷婷 | 国产精品人人妻人人爽 | 又大又黄又粗又爽的免费视频 | 亚洲狠狠色丁香婷婷综合 | 亚洲熟悉妇女xxx妇女av | 四虎国产精品一区二区 | 熟妇人妻中文av无码 | 少妇激情av一区二区 | 无码人妻精品一区二区三区下载 | 中文字幕 人妻熟女 | 97无码免费人妻超级碰碰夜夜 | 国产精品爱久久久久久久 | 亚洲成a人片在线观看无码3d | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 色婷婷综合激情综在线播放 | 亲嘴扒胸摸屁股激烈网站 | 偷窥日本少妇撒尿chinese | 亚洲日韩一区二区三区 | 理论片87福利理论电影 | 久久zyz资源站无码中文动漫 | 国产精品第一区揄拍无码 | 一本久久a久久精品亚洲 | 亚洲精品一区二区三区在线 | 国产色xx群视频射精 | 婷婷色婷婷开心五月四房播播 | 亚洲乱码国产乱码精品精 | 老子影院午夜精品无码 | 中文久久乱码一区二区 | 国产成人综合在线女婷五月99播放 | 久久久久久亚洲精品a片成人 | 日本一卡二卡不卡视频查询 | 啦啦啦www在线观看免费视频 | 国产亚洲精品久久久ai换 | 丝袜足控一区二区三区 | 自拍偷自拍亚洲精品10p | 国产精品人妻一区二区三区四 | 亚洲а∨天堂久久精品2021 | 国产无遮挡又黄又爽又色 | 国内精品人妻无码久久久影院蜜桃 | 蜜桃av抽搐高潮一区二区 | 大胆欧美熟妇xx | 高潮毛片无遮挡高清免费视频 | 无码av免费一区二区三区试看 | 三上悠亚人妻中文字幕在线 | 久久久精品456亚洲影院 | 亚洲呦女专区 | 久久午夜无码鲁丝片午夜精品 | 亚洲成色在线综合网站 | 国产午夜无码视频在线观看 | 国产亚洲精品久久久久久大师 | 人妻熟女一区 | 55夜色66夜色国产精品视频 | 无码毛片视频一区二区本码 | 水蜜桃亚洲一二三四在线 | 国产精品久久精品三级 | 日本精品久久久久中文字幕 | 男女猛烈xx00免费视频试看 | 丰满肥臀大屁股熟妇激情视频 | 久久99国产综合精品 | 熟妇人妻激情偷爽文 | 成人免费视频视频在线观看 免费 | 亚洲爆乳大丰满无码专区 | 国产一区二区三区精品视频 | 日本高清一区免费中文视频 | 无套内谢的新婚少妇国语播放 | 亚洲男人av天堂午夜在 | 日韩无套无码精品 |