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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ArrayList集合的使用和源码详细分析

發布時間:2024/10/14 编程问答 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArrayList集合的使用和源码详细分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面:博主是一位普普通通的19屆雙非軟工在讀生,平時最大的愛好就是聽聽歌,逛逛B站。博主很喜歡的一句話花開堪折直須折,莫待無花空折枝:博主的理解是頭一次為人,就應該做自己想做的事,做自己不后悔的事,做自己以后不會留有遺憾的事,做自己覺得有意義的事,不浪費這大好的青春年華。博主寫博客目的是記錄所學到的知識并方便自己復習,在記錄知識的同時獲得部分瀏覽量,得到更多人的認可,滿足小小的成就感,同時在寫博客的途中結交更多志同道合的朋友,讓自己在技術的路上并不孤單。

本文轉載ArrayList(JDK1.8)源碼解析

目錄:

1.ArrayList概述
2.成員變量的源碼解析(JDK1.8)
3.構造方法的源碼解析(JDK1.8)
4.內部類源碼解析(JDK1.8)
5.add()方法源碼解析(JDK1.8)
6.數組擴容原理源碼解析(JDK1.8)
7.大數據插入問題
8.remove()方法源碼解析(JDK1.8)
9.get()方法源碼解析(JDK1.8)
10.set()方法源碼解析(JDK1.8)
11.indexOf()方法源碼解析(JDK1.8)
12.contains()方法源碼解析(JDK1.8)
13.toArray()方法源碼解析(JDK1.8)
14.ArrayList集合的三種遍歷方式
15.ArrayList和數組之間的轉換
16.多線程場景下使用ArrayList
17.ArrayList的優缺點

1.ArrayList概述

1.1.ArrayList簡介

java.util.ArrayList集合數據存儲的結構是數組結構(它的底層原理其實就是一個Object數組)。元素增刪慢,查找快,由于日常開發中使用最多的功能為查詢數據、遍歷數據,所以ArrayList是最常用的集合。

1.2.ArrayList特點:

1.它是基于數組實現的List類
2.可以動態地調整容量
3.有序的(元素輸出順序與輸入順序一致)
4.元素可以為 null
5.不同步,非線程安全,效率高
6.查詢快,增刪慢
7.用空間更小,對比 LinkedList,不用占用額外空間維護鏈表結構

2.成員變量的源碼解析

// 序列號 private static final long serialVersionUID = 8683452581122892189L; // 數組初始容量為 10 private static final int DEFAULT_CAPACITY = 10;0 // 空對象數組 private static final Object[] EMPTY_ELEMENTDATA = {}; // 缺省空對象數組,如果使用默認構造方法創建對象內容是該值 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; // 底層數據結構,數組,當前對象存放的地方,當前對象不參與序列化 transient Object[] elementData; // 當前數組元素個數,默認為0 private int size; // 最大數組容量 private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

注意看ArrayList 的 elementData 加上 transient 修飾可以這么解釋:
再看一下 ArrayList 的定義:

public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, java.io.Serializable

可以看到 ArrayList 實現了 Serializable 接口,這意味著 ArrayList 支持序列化。transient 的作用是說不希望 elementData 數組被序列化,重寫了 writeObject 實現:

private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{*// Write out element count, and any hidden stuff*int expectedModCount = modCount;s.defaultWriteObject();*// Write out array length*s.writeInt(elementData.length);*// Write out all elements in the proper order.*for (int i=0; i<size; i++)s.writeObject(elementData[i]);if (modCount != expectedModCount) {throw new ConcurrentModificationException(); }

每次序列化時,先調用 defaultWriteObject() 方法序列化 ArrayList 中的非 transient 元素,然后遍歷 elementData,只序列化已存入的元素,這樣既加快了序列化的速度,又減小了序列化之后的文件大小。

3.構造方法的源碼解析

//默認構造方法,初始為空數組。 //只有插入一條數據后才會擴展為10,而實際上默認是空的public ArrayList() {// 把空的對象數組賦給elementDatathis.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }//根據指定容量創建對象數組 public ArrayList(int initialCapacity) {if (initialCapacity > 0) {//創建initialCapacity大小的數組this.elementData = new Object[initialCapacity];} else if (initialCapacity == 0) {//創建空數組this.elementData = EMPTY_ELEMENTDATA;} else {throw new IllegalArgumentException("Illegal Capacity: "+initialCapacity);} }/*** 構造一個包含指定集合的元素的列表,按照它們由集合的迭代器返回的順序。*/ public ArrayList(Collection<? extends E> c) {//轉換最主要的是toArray(),這在Collection中就定義了elementData = c.toArray();//toArray返回一個數組if ((size = elementData.length) != 0) {// c.toArray 有可能不返回一個 Object 數組if (elementData.getClass() != Object[].class)//因為所有的Object數組共用一個Class文件//使用 Arrays.copy 方法拷創建一個 Object 數組elementData = Arrays.copyOf(elementData, size, Object[].class);} else {// 替換為空數組this.elementData = EMPTY_ELEMENTDATA;} }

為了理解所有的Object數組共用一個Class文件,我們隨機創建兩個Object數組:

package untl; public class MyObject {public static void main(String[] args) {Object arr []=new Object[10];Object brr []=new Object[20];if(arr.getClass()==brr.getClass()){System.out.println("所有的Object數組共用一個Class文件");}elseSystem.out.println("不同的Object數組不一定共用一個Class文件");} } 運行結果: 所有的Object數組共用一個Class文件

4.內部類源碼解析

(1)private class Itr implements Iterator<E> (2)private class ListItr extends Itr implements ListIterator<E> (3)private class SubList extends AbstractList<E> implements RandomAccess (4)static final class ArrayListSpliterator<E> implements Spliterator<E>

我們只需要掌握兩個迭代器就行

ArrayList有四個內部類,其中的Itr是實現了Iterator接口,同時重寫了里面的hasNext(),next(), remove()等方法;其中的ListItr 繼承 Itr,實現了ListIterator接口,同時重寫了hasPrevious(), nextIndex(), previousIndex(),previous(), set(E e),add(E e) 等方法,所以這也可以看出了 Iterator和ListIterator的區別:ListIterator在Iterator的基礎上增加了添加對象,修改對象,逆向遍歷等方法,這些是Iterator不能實現的。

5.add()方法源碼解析

//添加一個特定的元素到list的末尾 public boolean add(E e) {//先確保elementData數組的長度足夠,size是數組中數據的個數,因為要添加一個元素,所以size+1,先判斷size+1的這個個數數組能否放得下,在這個方法中去判斷數組長度是否夠用ensureCapacityInternal(size + 1); // Increments modCount!!//在數據中正確的位置上放上元素e,并且size++elementData[size++] = e;return true; }//在指定位置添加一個元素 public void add(int index, E element) {rangeCheckForAdd(index);//先確保elementData數組的長度足夠ensureCapacityInternal(size + 1); // Increments modCount!!//將數據整體向后移動一位,空出位置之后再插入,效率不太好System.arraycopy(elementData, index, elementData, index + 1,size - index);elementData[index] = element;size++; }// 校驗插入位置是否合理 private void rangeCheckForAdd(int index) {//插入的位置肯定不能大于size 和小于0if (index > size || index < 0) //如果是,就報越界異常throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); }//添加一個集合 public boolean addAll(Collection<? extends E> c) {//把該集合轉為對象數組Object[] a = c.toArray();int numNew = a.length;//增加容量ensureCapacityInternal(size + numNew); // Increments modCount//挨個向后遷移System.arraycopy(a, 0, elementData, size, numNew);size += numNew;//新數組有元素,就返回 truereturn numNew != 0; }//在指定位置,添加一個集合 public boolean addAll(int index, Collection<? extends E> c) {rangeCheckForAdd(index);Object[] a = c.toArray();int numNew = a.length;ensureCapacityInternal(size + numNew); // Increments modCountint numMoved = size - index;//原來的數組挨個向后遷移if (numMoved > 0)System.arraycopy(elementData, index, elementData, index + numNew,numMoved);//把新的集合數組 添加到指定位置System.arraycopy(a, 0, elementData, index, numNew);size += numNew;return numNew != 0; }

我們主注意到其實元素的各種添加方式其實是依據System.arraycopy來實現

6.數組擴容原理源碼解析

//確保內部容量夠用 private void ensureCapacityInternal(int minCapacity) {ensureExplicitCapacity(calculateCapacity(elementData, minCapacity)); }//計算容量。判斷初始化的elementData是不是空的數組,如果是空的話,返回默認容量10與minCapacity=size+1的較大值者。 private static int calculateCapacity(Object[] elementData, int minCapacity) {if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {return Math.max(DEFAULT_CAPACITY, minCapacity);}return minCapacity; }//確認實際的容量,這個方法就是真正的判斷elementData是否夠用 private void ensureExplicitCapacity(int minCapacity) {modCount++;//minCapacity如果大于了實際elementData的長度,那么就說明elementData數組的長度不夠用,不夠用那么就要增加elementData的length。這里有的小伙伴就會模糊minCapacity到底是什么呢,這里解釋一下/*** 當我們要 add 進第1個元素到 ArrayList 時,elementData.length 為0 (因為還是一個空的 list),因為執行了 `ensureCapacityInternal()` 方法 ,所以 minCapacity 此時為10。此時,`minCapacity - elementData.length > 0 `成立,所以會進入 `grow(minCapacity)` 方法。* 當add第2個元素時,minCapacity 為2,此時e lementData.length(容量)在添加第一個元素后擴容成 10 了。此時,`minCapacity - elementData.length > 0 ` 不成立,所以不會進入 (執行)`grow(minCapacity)` 方法。* 添加第3、4···到第10個元素時,依然不會執行grow方法,數組容量都為10。* 直到添加第11個元素,minCapacity(為11)比elementData.length(為10)要大。進入grow方法進行擴容。*/// overflow-conscious codeif (minCapacity - elementData.length > 0)//ArrayList能自動擴展大小的關鍵方法就在這里了grow(minCapacity); }//擴容核心方法 private void grow(int minCapacity) {//將擴充前的elementData大小給oldCapacity// overflow-conscious codeint oldCapacity = elementData.length;//新容量newCapacity是1.5倍的舊容量oldCapacityint newCapacity = oldCapacity + (oldCapacity >> 1);//這句話就是適應于elementData就空數組的時候,length=0,那么oldCapacity=0,newCapacity=0,所以這個判斷成立,在這里就是真正的初始化elementData的大小了,就是為10。if (newCapacity - minCapacity < 0)newCapacity = minCapacity;//如果newCapacity超過了最大的容量限制,就調用hugeCapacity,也就是將能給的最大值給newCapacityif (newCapacity - MAX_ARRAY_SIZE > 0)newCapacity = hugeCapacity(minCapacity);//新的容量大小已經確定好了,就copy數組,改變容量大小。// minCapacity is usually close to size, so this is a win:elementData = Arrays.copyOf(elementData, newCapacity); }//這個就是上面用到的方法,很簡單,就是用來賦最大值。 private static int hugeCapacity(int minCapacity) {if (minCapacity < 0) // overflowthrow new OutOfMemoryError();//如果minCapacity都大于MAX_ARRAY_SIZE,那么就Integer.MAX_VALUE返回,反之將MAX_ARRAY_SIZE返回。因為maxCapacity是三倍的minCapacity,可能擴充的太大了,就用minCapacity來判斷了。//Integer.MAX_VALUE:2147483647 MAX_ARRAY_SIZE:2147483639 也就是說最大也就能給到第一個數值。還是超過了這個限制,就要溢出了。相當于arraylist給了兩層防護。return (minCapacity > MAX_ARRAY_SIZE) ?Integer.MAX_VALUE :MAX_ARRAY_SIZE; }

至此,我們徹底明白了ArrayList的擴容機制了。首先創建一個空數組elementData,第一次插入數據時直接擴充至10,然后如果elementData的長度不足,就擴充至1.5倍,如果擴充完還不夠,就使用需要的長度作為elementData的長度

7.大數據問題

在遇到大量數據時還是會頻繁的拷貝數據。那么如何緩解這種問題呢
ArrayList為我們提供了兩種可行的方案:

1.使用ArrayList(int initialCapacity)這個有參構造,在創建時就聲明一個較大的大小,這樣解決了頻繁拷貝問題,但是需要我們提前預知數據的數量級,也會一直占有較大的內存。
2.除了添加數據時可以自動擴容外,我們還可以在插入前先進行一次擴容。只要提前預知數據的數量級,就可以在需要時直接一次擴充到位,與ArrayList(int initialCapacity)相比的好處在于不必一直占有較大內存,同時數據拷貝的次數也大大減少了。這個方法就是ensureCapacity(int minCapacity),其內部就是調用了ensureCapacityInternal(int minCapacity)

舉個例子看兩者的效率:

public class EnsureCapacityTest {public static void main(String[] args) {ArrayList<Object> list = new ArrayList<Object>();final int N = 10000000;long startTime = System.currentTimeMillis();for (int i = 0; i < N; i++) {list.add(i);}long endTime = System.currentTimeMillis();System.out.println("使用ensureCapacity方法前:" + (endTime - startTime));list = new ArrayList<Object>();long startTime1 = System.currentTimeMillis();list.ensureCapacity(N);for (int i = 0; i < N; i++) {list.add(i);}long endTime1 = System.currentTimeMillis();System.out.println("使用ensureCapacity方法后:" + (endTime1 - startTime1));} } 運行結果: 使用ensureCapacity方法前:2700 使用ensureCapacity方法后:1054

通過運行結果,我們可以很明顯的看出向 ArrayList 添加大量元素之前最好先使用ensureCapacity 方法,以減少增量重新分配的次數

8.remove()方法源碼解析

//根據索引刪除指定位置的元素 public E remove(int index) {//檢查index的合理性rangeCheck(index);//這個作用很多,比如用來檢測快速失敗的一種標志。modCount++;//通過索引直接找到該元素E oldValue = elementData(index);//計算要移動的位數。int numMoved = size - index - 1;if (numMoved > 0)//移動元素,挨個往前移一位。System.arraycopy(elementData, index+1, elementData, index,numMoved);//將--size上的位置賦值為null,讓gc(垃圾回收機制)更快的回收它。elementData[--size] = null; // clear to let GC do its work//返回刪除的元素。return oldValue; }//從此列表中刪除指定元素的第一個匹配項,如果存在,則刪除。通過元素來刪除該元素,就依次遍歷,如果有這個元素,就將該元素的索引傳給fastRemobe(index),使用這個方法來刪除該元素,fastRemove(index)方法的內部跟remove(index)的實現幾乎一樣,這里最主要是知道arrayList可以存儲null值 public boolean remove(Object o) {if (o == null) {//挨個遍歷找到目標for (int index = 0; index < size; index++)if (elementData[index] == null) {//快速刪除fastRemove(index);return true;}} else {for (int index = 0; index < size; index++)if (o.equals(elementData[index])) {fastRemove(index);return true;}}return false; }//內部方法,“快速刪除”,就是把重復的代碼移到一個方法里 private void fastRemove(int index) {modCount++;int numMoved = size - index - 1;if (numMoved > 0)System.arraycopy(elementData, index+1, elementData, index,numMoved);elementData[--size] = null; // clear to let GC do its work }//刪除或者保留指定集合中的元素 //用于兩個方法,一個removeAll():它只清除指定集合中的元素,retainAll()用來測試兩個集合是否有交集。  private boolean batchRemove(Collection<?> c, boolean complement) {//將原集合,記名為Afinal Object[] elementData = this.elementData;//r用來控制循環,w是記錄有多少個交集int r = 0, w = 0;boolean modified = false;try {//遍歷 ArrayList 集合for (; r < size; r++)//參數中的集合c一次檢測集合A中的元素是否有if (c.contains(elementData[r]) == complement)//有的話,就給集合AelementData[w++] = elementData[r];} finally {//發生了異常,直接把 r 后面的復制到 w 后面if (r != size) {//將剩下的元素都賦值給集合ASystem.arraycopy(elementData, r,elementData, w,size - r);w += size - r;}if (w != size) {//這里有兩個用途,在removeAll()時,w一直為0,就直接跟clear一樣,全是為null。//retainAll():沒有一個交集返回true,有交集但不全交也返回true,而兩個集合相等的時候,返回false,所以不能根據返回值來確認兩個集合是否有交集,而是通過原集合的大小是否發生改變來判斷,如果原集合中還有元素,則代表有交集,而元集合沒有元素了,說明兩個集合沒有交集。// 清除多余的元素,clear to let GC do its workfor (int i = w; i < size; i++)elementData[i] = null;modCount += size - w;size = w;modified = true;}}return modified; }//保留公共的 public boolean retainAll(Collection<?> c) {Objects.requireNonNull(c);return batchRemove(c, true); }//將elementData中每個元素都賦值為null,等待垃圾回收將這個給回收掉 public void clear() {modCount++;//并沒有直接使數組指向 null,而是逐個把元素置為空,下次使用時就不用重新 new 了for (int i = 0; i < size; i++)elementData[i] = null;size = 0; }

總結:根據索引刪除指定位置的元素,此時會把指定下標到數組末尾的元素挨個向前移動一個單位,并且會把數組最后一個元素設置為null,這樣是為了方便之后將整個數組不被使用時,會被GC,可以作為小的技巧使用。

9.get()方法源碼解析

public E get(int index) {// 檢驗索引是否合法rangeCheck(index);return elementData(index); }private void rangeCheck(int index) {if (index >= size)throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); }

說明:get函數會檢查索引值是否合法(只檢查是否大于size,而沒有檢查是否小于0),值得注意的是,在get函數中存在element函數,element函數用于返回具體的元素,具體函數如下:

E elementData(int index) {return (E) elementData[index]; }

說明:返回的值都經過了向下轉型(Object -> E),這些是對我們應用程序屏蔽的小細節。

10.set()方法源碼解析

//設定指定下標索引的元素值 public E set(int index, E element) {// 檢驗索引是否合法rangeCheck(index);// 舊值E oldValue = elementData(index);// 賦新值elementData[index] = element;// 返回舊值return oldValue; }

11.indexOf()方法源碼解析

// 從首開始查找數組里面是否存在指定元素 public int indexOf(Object o) {// 查找的元素為空if (o == null) { // 遍歷數組,找到第一個為空的元素,返回下標for (int i = 0; i < size; i++) if (elementData[i]==null)return i;} else { // 查找的元素不為空// 遍歷數組,找到第一個和指定元素相等的元素,返回下標for (int i = 0; i < size; i++) if (o.equals(elementData[i]))return i;} // 沒有找到,返回空return -1; }//返回列表中指定元素最后一次出現的索引,倒著遍歷 public int lastIndexOf(Object o) {if (o == null) {for (int i = size-1; i >= 0; i--)if (elementData[i]==null)return i;} else {for (int i = size-1; i >= 0; i--)if (o.equals(elementData[i]))return i;}return -1; }

說明:從頭開始查找與指定元素相等的元素,需要注意的是可以查找null元素,意味著ArrayList中可以存放null元素的。與此函數對應的lastIndexOf,表示從尾部開始查找。

12.contains()方法源碼解析

//判斷是否含有某個元素 public boolean contains(Object o) {return indexOf(o) >= 0; }

13.toArray()方法源碼解析

/**以正確的順序返回一個包含此列表中所有元素的數組(從第一個到最后一個元素); 返回的數組的運行時類型是指定數組的運行時類型。 */ public Object[] toArray() {//elementData:要復制的數組;size:要復制的長度return Arrays.copyOf(elementData, size); }public <T> T[] toArray(T[] a) {//如果只是要把一部分轉換成數組if (a.length < size)// Make a new array of a's runtime type, but my contents:return (T[]) Arrays.copyOf(elementData, size, a.getClass());//全部元素拷貝到 數組 aSystem.arraycopy(elementData, 0, a, 0, size);if (a.length > size)a[size] = null;return a; }

14.ArrayList三種遍歷方式

14.1.第一種for循環

基于計數器。在集合外部維護一個計數器,然后依次讀取每一個位置的元素,當讀取到最后一個元素后停止

package untl; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class MyObject {public static void main(String[] args) {List<String> list=new ArrayList();Collections.addAll(list,"aaa","bbb","ccc","ddd");for (int i = 0; i <list.size() ; i++) {System.out.println(list.get(i));}} } 運行結果: aaa bbb ccc ddd
14.2.第二種foreach循環

foreach 內部也是采用了 Iterator 的方式實現,使用時不需要顯式聲明 Iterator 或計數器。優點是代碼簡潔,不易出錯;缺點是只能做簡單的遍歷,不能在遍歷過程中操作數據集合,例如刪除、替換。

package untl; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class MyObject {public static void main(String[] args) {List<String> list=new ArrayList();Collections.addAll(list,"aaa","bbb","ccc","ddd");for (String str:list) {System.out.println(str);}} } aaa bbb ccc ddd
14.3.第三種迭代器Iterator

Iterator 是面向對象的一個設計模式,目的是屏蔽不同數據集合的特點,統一遍歷集合的接口。Java 在 Collections 中支持了 Iterator 模式。

package untl; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; public class MyObject {public static void main(String[] args) {List<String> list=new ArrayList();Collections.addAll(list,"aaa","bbb","ccc","ddd");for (Iterator<String> iterator=list.iterator();iterator.hasNext();){String str=iterator.next();System.out.println(str);}} } 運行結果: aaa bbb ccc ddd

15ArrayList與數組之間相互轉換

數組轉 List:使用 Arrays. asList(array) 進行轉換。
List 轉數組:使用 List 自帶的 toArray() 方法。

例子:

package untl; import java.util.*; public class MyObject {public static void main(String[] args) {List<String> list1=new ArrayList<String>();Collections.addAll(list1,"aaa","bbb","ccc","ddd");Object arr[] = list1.toArray();//這里返回Object類型數組for (Object str:arr){System.out.println(str);}System.out.println("---------------------------------------------");List list2= Arrays.asList(arr);for (Iterator<String> iterator=list2.iterator();iterator.hasNext();){String str=iterator.next();System.out.println(str);}} } 運行結果: aaa bbb ccc ddd --------------------------------------------- aaa bbb ccc ddd

16.多線程場景下使用ArrayList

ArrayList 不是線程安全的,如果遇到多線程場景,可以通過 Collections 的 synchronizedList 方法將其轉換成線程安全的容器后再使用。例如像下面這樣:

List<String> synchronizedList = Collections.synchronizedList(list); synchronizedList.add("aaa"); synchronizedList.add("bbb"); for (int i = 0; i < synchronizedList.size(); i++) {System.out.println(synchronizedList.get(i)); }

17.ArrayList的優缺點

ArrayList優點如下:

1.ArrayList 底層以數組實現,是一種隨機訪問模式。ArrayList 實現了 RandomAccess 接口,因此查找的時候非常快。
2.ArrayList 在順序添加一個元素的時候非常方便。

ArrayList 的缺點如下:

1.刪除元素的時候,需要做一次元素復制操作。如果要復制的元素很多,那么就會比較 耗費性能
2.插入元素的時候,也需要做一次元素復制操作,缺點同上。

總結

以上是生活随笔為你收集整理的ArrayList集合的使用和源码详细分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

免费看的黄色片 | 国产中文字幕av | 天天艹 | 97成人啪啪网 | 丁香五月亚洲综合在线 | 国产又粗又猛又黄视频 | 免费男女网站 | 麻豆国产在线播放 | 欧美午夜激情网 | 国产理论免费 | 国产视频 亚洲精品 | 色噜噜在线观看 | 久久久久亚洲国产精品 | 午夜视频欧美 | 五月天婷婷丁香花 | 欧美精品视 | 国产免费一区二区三区最新6 | 91一区啪爱嗯打偷拍欧美 | 免费观看一级一片 | 免费人成在线观看网站 | 成人国产亚洲 | av免费观看网站 | 日韩a在线| 欧美韩日精品 | 一区二区三区在线观看免费 | 欧美日韩网站 | 中文字幕中文字幕在线一区 | 99一区二区三区 | 久爱综合 | 人人爽人人av | 免费91麻豆精品国产自产在线观看 | 伊人热| 中文字幕 国产视频 | 日本精品一区二区在线观看 | 国产99久久九九精品免费 | 欧美日韩精品在线免费观看 | 国产精品欧美久久久久三级 | 97av色| 欧美美女视频在线观看 | 五月天婷婷视频 | 中文免费在线观看 | 欧美精品一区二区三区一线天视频 | 久操视频在线播放 | 精品久久久久久久久久国产 | 97色国产 | 免费麻豆视频 | 91久色蝌蚪 | 日韩精品免费一线在线观看 | 麻豆免费观看视频 | www.一区二区三区 | 国产视频在线观看一区 | 亚洲综合在线播放 | 午夜在线免费视频 | 久久99欧美| 波多野结衣视频一区二区 | 免费看网站在线 | 欧美在线视频免费 | 99久久99 | 韩国精品一区二区三区六区色诱 | 韩国三级av在线 | 五月综合网站 | 91免费看黄色| 色婷婷电影 | 日韩在线视频精品 | 午夜国产在线观看 | av在线激情 | 久久久999精品视频 国产美女免费观看 | 香蕉网站在线观看 | 婷婷国产一区二区三区 | 欧美另类xxxxx | 国产成人精品一二三区 | 亚洲国产视频a | 国产xxxx性hd极品 | av不卡中文字幕 | 成人精品影视 | 最新国产中文字幕 | 日韩理论在线播放 | 午夜免费电影院 | 久久久久久久18 | 国产一区成人在线 | 亚洲精品在线观看的 | 亚洲精品国偷自产在线91正片 | av观看在线观看 | 视频国产一区二区三区 | 欧美视频二区 | 99国产精品一区二区 | 久久99久久99精品免观看粉嫩 | 欧美精品久久久久久久 | 婷婷丁香自拍 | 黄色国产区| 91在线视频导航 | 精品国产一区二区三区日日嗨 | 国产999精品 | 国内精品免费久久影院 | 狠狠狠色丁香综合久久天下网 | 在线观看中文字幕2021 | 粉嫩av一区二区三区入口 | 久久免费视频在线观看30 | 中文字幕日本在线观看 | 久久久久久久久久福利 | 欧美日韩一区久久 | 亚洲欧洲中文日韩久久av乱码 | 亚洲天天综合 | 全久久久久久久久久久电影 | 成人午夜精品久久久久久久3d | 激情久久综合 | 9797在线看片亚洲精品 | 中文字幕 成人 | 久久免费看a级毛毛片 | 国产精品久久久久久模特 | 日韩精品中文字幕有码 | 精品一区二区免费 | 成人免费看电影 | 激情五月在线观看 | 久久免费视频99 | 久久精品国产成人 | 欧美日本不卡视频 | 日日麻批40分钟视频免费观看 | 91人人澡人人爽人人精品 | 精品国产乱子伦一区二区 | 精品在线看 | 成人国产精品一区 | 国产区免费在线 | 九九视频这里只有精品 | 免费一级特黄毛大片 | 免费韩国av | 国产精品日韩在线观看 | 国产一区免费 | 亚洲一级在线观看 | 久久精品一区二 | 国产黑丝一区二区 | 一二三四精品 | 亚洲日韩精品欧美一区二区 | 日韩小视频| 综合天堂av久久久久久久 | 91精品视频免费观看 | 九九热免费在线观看 | 欧美精品一二三 | 亚洲高清视频在线观看免费 | 国产精品一区二区精品视频免费看 | 国产一级二级视频 | 91免费看片黄 | 国产精品九九视频 | 最新在线你懂的 | 六月丁香社区 | 天天搞天天干天天色 | 97av视频在线观看 | 黄色成人av | 96香蕉视频 | 日韩精选在线 | 在线免费观看黄色 | 香蕉影视| 开心激情五月网 | 久久免费一级片 | 国产精品日韩在线观看 | 国内精品久久久久久久久久久 | 精品久久五月天 | 久久污视频 | 日日干夜夜爱 | 国产午夜小视频 | 久久综合中文色婷婷 | 国产高清精| 婷婷丁香九月 | 最新中文字幕在线观看视频 | 韩国av不卡 | 欧美精品第一 | 搡bbbb搡bbb视频 | 久久久久9999亚洲精品 | 日韩午夜电影网 | 国产手机在线观看视频 | 91视频最新网址 | 免费看十八岁美女 | 国产精品自产拍在线观看桃花 | 亚洲一区免费在线 | 午夜成人免费电影 | 亚洲激情校园春色 | 亚洲精品国产精品国自产观看浪潮 | 免费av在线网站 | av网站在线免费观看 | 国产 字幕 制服 中文 在线 | 激情久久久久 | 中文字幕精品视频 | 国产手机视频在线播放 | 一级片免费在线 | 婷婷成人亚洲综合国产xv88 | 青春草视频在线播放 | 日韩欧美一区二区三区黑寡妇 | 欧美日韩国产综合网 | 亚洲美女免费视频 | 国产精品第 | 黄色看片 | 99av在线视频 | 亚洲精品美女久久久久 | 99精品久久只有精品 | 中文字幕视频在线播放 | 欧美日韩免费看 | 精品一区 在线 | av线上看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 中文字幕一区av | 在线观看av网站 | 日本在线视频网址 | 色5月婷婷| 免费观看福利视频 | 日韩免费一区二区 | 精品国产伦一区二区三区观看体验 | 天天天天综合 | 91片网| 欧美日韩一区二区三区在线免费观看 | 久久国产精品精品国产色婷婷 | 在线亚洲精品 | 国产精品免费视频一区二区 | 日韩在线电影 | 91色蜜桃| 黄色成人毛片 | 国产精品久久久久一区二区 | 亚洲婷婷综合色高清在线 | 一区二区三区日韩视频在线观看 | 91av播放| 国产在线观看免费 | 狠狠狠色丁香综合久久天下网 | 色婷婷a | 欧美成人精品欧美一级乱黄 | 福利一区在线 | 91在线免费观看网站 | 午夜91在线 | 天天操夜夜叫 | 久草在线视频新 | 人九九精品 | 日韩精品久久一区二区 | 婷婷在线网 | 日韩城人在线 | 久久综合九色综合欧美狠狠 | 黄色片网站免费 | 成人午夜精品 | 欧美性护士 | www一起操 | 精品免费国产一区二区三区四区 | 黄色免费看片网站 | 十八岁以下禁止观看的1000个网站 | 成人va天堂 | 91久久久久久久一区二区 | 五月婷婷丁香色 | 国产成人一区二区三区影院在线 | 国产精品九九视频 | 亚洲另类视频在线 | 91精品国产一区二区在线观看 | 精品国产乱码久久久久久浪潮 | 久久一区二区三区国产精品 | 久久图 | 天天干天天草天天爽 | 国产精品久久久久影视 | 久久网页| 国产视频综合在线 | 久爱综合 | 国产日韩精品在线观看 | 婷婷丁香狠狠爱 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 超碰激情在线 | 日韩精品网址 | 欧美日韩久久一区 | 日本中文字幕视频 | 天天看天天干天天操 | 亚洲伊人成综合网 | 超碰97人人在线 | 亚洲永久字幕 | 亚洲欧洲精品一区二区 | 婷婷深爱网| 一级成人在线 | 国产亚洲欧美在线视频 | 国产小视频免费观看 | 国产探花 | 天堂av免费 | 91av手机在线观看 | 欧美性视频网站 | 国产精品岛国久久久久久久久红粉 | 日韩在线观看第一页 | 国产无遮挡又黄又爽在线观看 | 一色屋精品视频在线观看 | 国产精品一区二区久久国产 | 在线你懂 | 国产精品手机在线观看 | 美女视频a美女大全免费下载蜜臀 | 91精品亚洲影视在线观看 | 久久线视频 | 黄色在线观看免费网站 | 欧美日韩免费观看一区二区三区 | 久久成人免费 | 97国产大学生情侣白嫩酒店 | 国产香蕉在线 | 亚洲 欧美 另类人妖 | 国产视频在线观看一区 | 99在线观看免费视频精品观看 | 日韩精品一区二区免费视频 | 蜜臀久久99静品久久久久久 | 91综合色| 成人国产精品免费观看 | 亚洲人久久久 | 亚洲 中文 在线 精品 | 日韩精品一二三 | 伊人激情网| 亚洲成a人片综合在线 | 亚洲精品黄 | 天天天天天操 | 韩国一区二区在线观看 | 久久久2o19精品 | 色婷婷国产在线 | 国产精品原创视频 | 免费观看全黄做爰大片国产 | 最近更新好看的中文字幕 | 日韩美女免费线视频 | 日韩乱理 | 午夜影视剧场 | 亚洲精品在线观看中文字幕 | 欧美一级大片在线观看 | 久久天天操 | 日日摸日日 | 亚洲精品一区二区三区新线路 | 久久精品视频观看 | 2019中文字幕网站 | 亚洲自拍av在线 | 手机在线看片日韩 | 久草久草在线观看 | 激情网在线视频 | 午夜狠狠干 | 一区二区不卡视频在线观看 | 久久爱资源网 | 91伊人影院 | 中文一区二区三区在线观看 | 99视频在线精品免费观看2 | 在线91精品 | 丁香婷婷激情网 | 在线免费国产 | 天天摸天天操天天爽 | 亚洲精品高清一区二区三区四区 | 99综合电影在线视频 | 五月婷婷激情六月 | 黄网站色欧美视频 | 色婷婷丁香 | 久久99国产综合精品免费 | 亚洲激情六月 | 久久久福利视频 | 婷婷爱五月天 | 在线观看视频一区二区三区 | 伊人色综合久久天天 | 一级免费看视频 | 91精品国自产在线观看欧美 | 欧亚久久 | 国产亚洲永久域名 | 久久99精品久久久久久久久久久久 | 黄色福利视频网站 | 五月婷婷激情网 | 色999精品| 色婷婷激情综合 | 亚洲国产午夜视频 | 亚洲a色 | 久久久国产成人 | 激情av网址 | 九九九视频精品 | 国内精品久久久久久久影视麻豆 | 久久精品国产免费看久久精品 | 成人91免费视频 | 五月天天天操 | 97精品国产97久久久久久 | 人人爽夜夜爽 | 97在线免费观看视频 | 成人午夜在线观看 | 在线观看午夜 | 欧美激情xxxx | 综合网欧美 | 99国产在线视频 | 国产亚洲高清视频 | 欧美一级免费黄色片 | 日韩 精品 一区 国产 麻豆 | 日本韩国精品一区二区在线观看 | 成人免费在线看片 | 97天天综合网 | 日韩精品一区二区三区免费视频观看 | 日本一区二区三区视频在线播放 | 久草视频中文在线 | 九九99| 国产精品日韩久久久久 | 日韩精品一区二区三区水蜜桃 | 一级欧美黄 | 国产三级精品三级在线观看 | 免费看片黄色 | 亚洲国产99| 日韩精品中文字幕av | 密桃av在线 | 特级西西444www大精品视频免费看 | 国产一区二区三区在线 | 免费日韩电影 | 久久福利影视 | 亚洲精品视频免费在线 | 国产黄色精品 | 日韩免费观看一区二区 | 毛片99| 日韩中文字幕第一页 | 丁香久久激情 | 国产精品久久久久久一二三四五 | 丁香久久综合 | 国精产品999国精产 久久久久 | 免费看v片| 国产 日韩 中文字幕 | 六月丁香婷 | 涩涩网站在线播放 | 中文字幕在线看视频 | 午夜av大片 | 国产黄色高清 | www.狠狠插.com| 久久综合久久久久88 | 国产精品久久久久久久久毛片 | 日本少妇视频 | 人人干干人人 | 免费看污污视频的网站 | 91精品国产高清 | 92国产精品久久久久首页 | 亚洲一区二区三区毛片 | 国产精品久久久久久爽爽爽 | 四虎在线观看视频 | 日韩av电影网站在线观看 | 日韩一级片网址 | 天天插狠狠插 | 人人超碰在线 | 成人黄色av网站 | 国产免费观看高清完整版 | 国产日韩欧美在线观看视频 | 国产午夜一级毛片 | 亚洲免费在线看 | 在线观看va | 日日狠狠 | 日韩理论片在线 | 亚洲专区 国产精品 | 日韩.com| 国内精品久久天天躁人人爽 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 欧美日韩国产一区二区三区 | www.狠狠插.com | 丁香婷婷深情五月亚洲 | 日韩电影一区二区在线 | 欧美日韩不卡一区二区 | 精品国产伦一区二区三区观看说明 | 四虎在线视频免费观看 | 天天干天天射天天爽 | 色播五月激情综合网 | 激情五月婷婷网 | 91最新在线观看 | 亚洲人精品午夜 | 天天操操| 久久久国产99久久国产一 | 日韩黄色在线 | 国产专区欧美专区 | 国产精品一区二区三区视频免费 | 久草视频在线免费 | 综合铜03| 久久免费视频4 | 日韩啪啪小视频 | 一区中文字幕 | 中文字幕丝袜一区二区 | 亚洲欧洲成人 | 久久久久久中文字幕 | 四虎永久精品在线 | 亚洲人人爱 | 日日夜夜精品免费视频 | 天天综合网国产 | 久99久中文字幕在线 | 国产视频二区三区 | 中文字幕色在线 | 亚洲精品久久久久999中文字幕 | 91综合久久一区二区 | 欧美一二三区在线观看 | 91少妇精拍在线播放 | 五月激情视频 | 欧亚日韩精品一区二区在线 | 亚洲第一久久久 | 久久中文精品视频 | 国产免费观看高清完整版 | 在线一区观看 | 国产欧美三级 | 国产一级视屏 | 91在线日韩 | 亚洲国产午夜 | 天天拍夜夜拍 | 天天搞天天干天天色 | 天天曰天天干 | 成人h动漫在线看 | 中文字幕在线精品 | 国产精品一区二区三区电影 | 欧美日韩免费看 | 成人午夜电影网 | 五月天激情视频 | 亚洲h视频在线 | 亚洲精品tv久久久久久久久久 | 日本久久久久 | 免费观看完整版无人区 | 狠狠躁天天躁 | 在线视频观看成人 | 日韩电影在线观看一区二区三区 | 九九热免费在线视频 | 精品国产1区 | 免费在线观看av网址 | 国产精品久久久久久久久久直播 | 精品女同一区二区三区在线观看 | 日韩在线观看免费 | 日韩性片 | 免费三级黄色 | 国产精品久久久久婷婷 | 玖玖在线观看视频 | 亚洲性视频 | 91女神的呻吟细腰翘臀美女 | 天天天干天天射天天天操 | 免费看成人a | 天天爽天天爽夜夜爽 | 日韩精品久久久久 | 欧美日韩久 | 国产免费观看高清完整版 | 中文字幕精品一区二区三区电影 | 国产探花视频在线播放 | 99视频网站| 精品国产电影一区 | 久久久精品免费看 | 亚洲国产福利视频 | 欧美黄色高清 | 99久久精品免费看国产免费软件 | 一区二区三区播放 | 91经典在线 | 操操综合| 天天综合日日夜夜 | 97操操操| 99精品免费久久久久久久久 | 精品视频久久久久久 | 国产精品一级在线 | 欧美极品一区二区三区 | 国产精品免费观看网站 | 久草在线一免费新视频 | 91中文字幕在线观看 | 日韩中文字幕在线观看 | 国产精品欧美久久久久三级 | 久久久久久久久久国产精品 | 日韩欧美视频在线播放 | 1区2区3区在线观看 三级动图 | 亚洲精品久久久蜜臀下载官网 | 国产亚州精品视频 | 欧美国产亚洲精品久久久8v | 99久久婷婷国产 | 久久人人看 | 国产精品久久久久久久久岛 | 天天综合久久综合 | 久久99久久99精品免观看粉嫩 | 国产福利精品在线观看 | 久久久久高清毛片一级 | 亚洲人人爱 | 97超碰中文 | 精品亚洲国产视频 | 色欧美88888久久久久久影院 | 日韩精品一区二区三区丰满 | 超碰精品在线观看 | 中文字幕五区 | 黄色亚洲在线 | 久久综合狠狠综合久久激情 | 欧美福利片在线观看 | 色视频成人在线观看免 | 欧美另类xxx | 国产精品av免费观看 | 国产一级视频在线免费观看 | 日韩一区二区三区免费电影 | 99久久精品无码一区二区毛片 | 国产一级视频在线观看 | 婷婷激情网站 | 91亚洲在线 | 在线看免费 | 一级一片免费观看 | 国产精品成人自产拍在线观看 | 91麻豆精品国产91久久久久久久久 | 亚洲精品乱码久久久久久写真 | 97福利| 六月丁香在线观看 | 99在线热播精品免费 | 亚洲精品久久久久中文字幕二区 | 99精彩视频在线观看免费 | 亚洲精品成人av在线 | 日韩欧美国产精品 | 中文字幕丝袜制服 | 69av在线播放| 欧美日韩精品网站 | japanesefreesexvideo高潮 | 日韩大片在线免费观看 | 国产人免费人成免费视频 | 五月婷婷.com | 99精品视频一区二区 | 久久理论视频 | 福利网在线| 国产免费资源 | 免费看污黄网站 | 欧美美女视频在线观看 | 天天干,天天插 | 久久不射电影院 | 五月综合激情网 | 成人黄色在线 | 69人人| 国产a免费| 国产精品久久精品国产 | 国产精品1区 | 国产又粗又猛又爽又黄的视频免费 | 日韩欧美在线免费观看 | 伊人六月| 91黄视频在线观看 | 亚洲天堂视频在线 | 日韩高清免费在线 | 成人精品一区二区三区电影免费 | 亚洲精品动漫成人3d无尽在线 | 91香蕉久久| 99精品在线免费视频 | 欧美在线视频一区二区 | 中国一级特黄毛片大片久久 | 日本中文字幕系列 | 91色国产在线 | 欧美日韩三区二区 | 亚洲成人网av | 久久久国产影视 | 日本一区二区高清不卡 | 天天草综合| 少妇bbbb搡bbbb搡bbbb | 欧美激情操 | 天天艹天天干天天 | 国产日韩欧美视频 | 久草精品电影 | 成人午夜剧场在线观看 | 91传媒在线看 | 在线国产不卡 | www.国产精品 | 黄色av电影在线观看 | 在线精品视频在线观看高清 | 三级av免费观看 | 激情网五月婷婷 | 99电影 | 免费成人av电影 | 天堂麻豆| 国产视频在线观看一区 | 精品国产电影 | 91精品久久久久久久久 | 深爱婷婷久久综合 | 国产在线传媒 | 亚洲欧洲一级 | 亚洲综合成人专区片 | 国产精品久久久久久久久久久杏吧 | 97日日 | 最新av网站在线观看 | 成人一级电影在线观看 | 欧美另类sm图片 | 亚洲 欧美 另类人妖 | 天天射综合网站 | 精品一区二区三区在线播放 | 日韩videos| 免费91麻豆精品国产自产在线观看 | a天堂一码二码专区 | 国产三级久久久 | 日韩精品第一区 | 九九免费在线观看 | 久久爱www. | 开心激情五月婷婷 | 日本黄网站| 欧美一区二区在线 | 久久国产精品免费看 | 亚洲免费一级电影 | 国产一级黄色电影 | 一级片在线 | 91新人在线观看 | 亚洲黄色区| 国产成人久久精品一区二区三区 | 欧美国产日韩一区二区 | 久久免费视频观看 | 一区二区三区免费网站 | 免费情趣视频 | 丁香六月网 | 亚洲精品永久免费视频 | 精品久久久久久久久久久院品网 | 欧美日韩在线视频一区 | 91精品少妇偷拍99 | 久草精品在线播放 | 四虎影视久久久 | 婷婷亚洲激情 | 亚洲精品视频在线观看免费视频 | 亚洲黄色一级视频 | 国产在线视频一区二区 | 天天射天天爱天天干 | 91热视频| 国产黄色免费看 | 91久久久久久久一区二区 | 99精品在线观看 | 在线综合色 | 男女男视频 | 色综合天天视频在线观看 | 欧美精品久久久久a | 欧美成人在线网站 | 国产 日韩 欧美 中文 在线播放 | 99在线国产 | 成人av教育 | 中文字幕黄色网址 | 久久久免费国产 | 手机av电影在线观看 | 国产麻豆剧传媒免费观看 | 黄色成年网站 | 最近高清中文在线字幕在线观看 | av在线a | 91社区国产高清 | 中文字幕一区二 | 久久国产精品一国产精品 | 人人爱人人爽 | 欧美一区二区在线看 | 亚洲综合丁香 | 日日夜夜精品免费观看 | 天天久久综合 | 久久精品成人欧美大片古装 | 中午字幕在线 | 国产精品视频999 | 国产在线一卡 | av免费看看 | 国产精品美女久久 | 婷婷六月天天 | 欧美aaa视频 | av福利在线导航 | 国产精品女主播一区二区三区 | av中文天堂 | 亚洲激情五月 | 超碰人人做 | 国产麻豆果冻传媒在线观看 | 狠狠狠狠狠狠狠狠干 | 国产专区免费 | 日日夜夜操操操操 | av手机在线播放 | 黄色1级毛片 | 久久久亚洲国产精品麻豆综合天堂 | 亚洲成人资源网 | av免费片 | 国产精品一区久久久久 | 激情五月在线观看 | 探花在线观看 | 日韩国产精品久久久久久亚洲 | 国产视频2区 | 中文字幕一区二区三区四区 | av超碰在线| 亚洲经典在线 | 国产欧美中文字幕 | 97精品在线| 丁香电影小说免费视频观看 | 91福利视频久久久久 | 黄色毛片电影 | 日日躁天天躁 | 免费在线国产精品 | 成人教育av | 伊人干综合 | 西西4444www大胆艺术 | 精品国产观看 | 色在线亚洲 | 精品视频一区在线 | 国产精品久久久久久影院 | 成人超碰在线 | 国产中的精品av小宝探花 | 久久久久伊人 | 美女啪啪图片 | 国产成人av网站 | 久久久久国产精品一区 | 伊人黄 | 国产香蕉久久 | 久久另类小说 | 国产三级精品三级在线观看 | 久久成视频| 久久精品人人做人人综合老师 | 色吧av色av | 日韩在线观看视频在线 | 成人av一二三区 | 久久男女视频 | 在线免费观看涩涩 | 久草网首页 | 国产一级二级视频 | 久久人人爽人人人人片 | 国产第一页在线播放 | 亚洲永久国产精品 | 黄色中文字幕 | 日本精品久久久一区二区三区 | 天天综合入口 | 亚洲在线看 | 色99网| 日韩大片在线观看 | 91色亚洲| 久草在线综合网 | 国产高清视频在线播放 | 婷婷久久一区二区三区 | 久久久久久欧美二区电影网 | 欧美日韩一区二区在线观看 | 国产精品毛片一区视频播不卡 | 成人黄大片视频在线观看 | 久草精品视频在线观看 | 亚洲精品激情 | 亚洲美女免费精品视频在线观看 | 国产在线一卡 | 狠狠色丁香婷婷综合久小说久 | 久久久电影网站 | 香蕉视频4aa | 日韩视频在线观看视频 | 国内小视频 | 国产日韩精品一区二区在线观看播放 | 国产高清99 | 麻花豆传媒mv在线观看网站 | 最新日韩电影 | 亚洲成av片人久久久 | 亚洲国产午夜精品 | 国产成人免费在线观看 | 亚洲成a人片在线观看网站口工 | 日韩在线免费高清视频 | 91热在线 | 免费视频久久久久 | 久草视频免费在线播放 | 国产精品一区在线 | 欧美日韩视频在线观看一区二区 | 久久99久久精品 | 国产黄色片免费 | 97视频在线观看成人 | 国产超碰在线观看 | 91成人在线免费观看 | 一区二区三区在线免费观看视频 | 国产一级黄 | 91福利国产在线观看 | 五月婷婷在线视频观看 | 国产精品欧美一区二区 | 免费男女羞羞的视频网站中文字幕 | 免费观看91视频大全 | 国产精品成人aaaaa网站 | 偷拍区另类综合在线 | 夜夜高潮夜夜爽国产伦精品 | 亚洲视屏在线播放 | 五月婷婷色| www.五月天| 五月天久久 | 欧美亚洲国产日韩 | 日韩国产精品毛片 | 国产精品自产拍 | 亚洲无在线| 日韩在线观看一区 | 成人午夜在线电影 | 成人国产电影在线观看 | 97成人精品视频在线观看 | 国产综合精品一区二区三区 | 欧美国产日韩激情 | 黄色影院在线观看 | 国产九九九九九 | 国产精品一区二区免费 | 色诱亚洲精品久久久久久 | 夜夜躁狠狠躁 | 中文字幕日韩精品有码视频 | 日韩精品 在线视频 | 国产精品国产毛片 | av夜夜操 | 久久九九视频 | 超碰97国产 | 天海翼一区二区三区免费 | 狠狠色丁香婷综合久久 | 在线国产片 | 成年人在线观看视频免费 | 免费在线激情电影 | 日韩av免费网站 | www.五月天婷婷 | av网址aaa| 91av小视频| 在线黄色免费 | 中文字幕在线播放av | 亚洲成人中文在线 | 国产高清黄色 | 高清一区二区三区av | 日韩区欧美久久久无人区 | 成人激情开心网 | 日韩电影久久久 | 国产不卡av在线 | 国产中文 | 国色天香永久免费 | 亚洲九九九 | 国产精品高清一区二区三区 | 99色在线观看视频 | 欧美色操 | 激情五月伊人 | 精品国产一区二区三区久久久久久 | 天躁狠狠躁| 99国产精品视频免费观看一公开 | 国产一二三四在线视频 | 亚洲精品国产品国语在线 | 国产精品久久久久久久免费观看 | 成人超碰在线 | 97综合网| 免费av电影网站 | 日韩女同av | 久久综合爱 | 国产 欧美 在线 | 亚洲在线视频观看 | 激情综合电影网 | 欧美日韩国产精品一区二区亚洲 | 免费观看国产精品 | 9ⅰ精品久久久久久久久中文字幕 | 欧美精品一区二区免费 | 五月天综合色激情 | 久久精品亚洲精品国产欧美 | 亚洲成人第一区 | 在线观看免费观看在线91 | 日韩精品专区在线影院重磅 | 97免费在线观看视频 | 91片黄在线观看 | 欧美人zozo | 超碰夜夜| 免费午夜在线视频 | 一区二区三区中文字幕在线观看 | 亚洲资源网 | 日韩大陆欧美高清视频区 | 一本一本久久a久久精品牛牛影视 | 日韩精品短视频 | 亚洲日本激情 | 五月婷婷伊人网 | 婷婷色站 | 国产精品一区免费观看 | 日韩最新理论电影 | 日本一区二区免费在线观看 | 在线免费观看黄 | 国产亚洲视频在线观看 | 国产日韩精品在线 | 精品在线视频观看 | av免费在线看网站 | 天天综合色天天综合 | 成人小视频在线免费观看 | 一区二区不卡高清 | 国产无遮挡又黄又爽馒头漫画 | av黄色在线观看 | 久久99久久99免费视频 | 欧美高清成人 | 中文字幕乱码一区二区 | 在线精品视频免费观看 | 最近中文字幕在线播放 | 中文字幕av在线不卡 | 涩涩网站免费 | 国产午夜一区 | 最新成人av | 国产精品久久久久9999 | 国产视频一二区 | 国产精品女视频 | a在线免费观看视频 | 欧美日bb | a视频在线播放 | 日韩高清av | 国产精品福利无圣光在线一区 | 天天综合网久久 | 天天射天天干天天操 | 国产视频2 | 国产又黄又猛又粗 | 国产热re99久久6国产精品 | 婷婷激情欧美 | av中文在线| 91爱看片 | 91精品视频免费观看 | 亚洲精品456在线播放 | 丝袜制服天堂 | 在线观看免费版高清版 | 免费观看完整版无人区 | 国产黄免费看 | 亚洲网久久 | 久久久免费精品 | 午夜免费电影院 | 在线视频观看你懂的 | 狠狠色丁香婷婷综合基地 | av在线h | 99在线视频免费观看 | 久久免费视频在线观看6 | 国产成人精品三级 | 超碰在线cao| 日韩一区二区三区免费视频 | 热久久免费视频 | 91最新网址在线观看 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 久久人人插 | 91日韩在线专区 | 国产精品99在线播放 | 午夜美女wwww | 在线观看mv的中文字幕网站 | 国产成人黄色片 | 亚洲福利精品 | 成人综合婷婷国产精品久久免费 | 天天色天 | 日韩在线不卡av | 丁香六月久久综合狠狠色 | 日日操天天爽 | 在线中文字幕播放 | 国产精品视频免费在线观看 | 狠狠88综合久久久久综合网 | 99一区二区三区 | 99热这里只有精品免费 | 日韩三区在线 | 99久久精品日本一区二区免费 | 免费福利片2019潦草影视午夜 | 国产精品一区二区电影 | 黄p网站在线观看 | 91亚洲精品久久久 |