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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【JAVA基础篇】集合框架

發布時間:2025/3/8 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【JAVA基础篇】集合框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、集合框架圖

Java集合框架主要包含兩種類型的容器,一是集合(Collection),存儲元素集合,二是圖(Map),存儲鍵(key)-值(value)對.Collection接口下面有兩個重要的子接口List和Set,再下面是一些抽象類,最后是實現類,常用的實現類有HashSet、ArrayList、HashMap等等。

二、Set和List的區別

Set接口實例存儲的是一組唯一,無序的對象。List實例存儲的是一組不唯一,有序的對象。

Set遍歷效率低,刪除和插入效率高,刪除和插入不會引起對象位置改變。

List遍歷效率高,刪除和插入效率低,因為刪除和插入會引起對象位置改變。

三、集合實現類

1、ArrayList

繼承AbstractList,實現了List接口。底層基于數組實現容量動態變化,允許元素為null,下面我們來看JDK1.8版本的ArrayList源碼。

重要屬性

private static final int DEFAULT_CAPACITY = 10;private static final Object[] EMPTY_ELEMENTDATA = {};private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};transient Object[] elementData;private int size;
  • DEFAULT_CAPACITY:默認容量大小
  • EMPTY_ELEMENTDATA :空數組
  • DEFAULTCAPACITY_EMPTY_ELEMENTDATA :默認容量的空數組
  • elementData:ArrayList的內部結構,是一個Object[]類型的數組
  • size:ArrayList包含的元素的數量
  • 構造方法

    public ArrayList(int initialCapacity) {if (initialCapacity > 0) {this.elementData = new Object[initialCapacity];} else if (initialCapacity == 0) {this.elementData = EMPTY_ELEMENTDATA;} else {throw new IllegalArgumentException("Illegal Capacity: "+initialCapacity);}}public ArrayList() {this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;}public ArrayList(Collection<? extends E> c) {elementData = c.toArray();if ((size = elementData.length) != 0) {if (elementData.getClass() != Object[].class)elementData = Arrays.copyOf(elementData, size, Object[].class);} else {this.elementData = EMPTY_ELEMENTDATA;}}
  • ArrayList(int initialCapacity):實例化ArrayList對象時指定容量大小。
  • ArrayList():無參構造方法,通過此構造器創建的ArrayList,第一次使用add方法添加元素時,容量為10。
  • ArrayList(Collection<? extends E> c):接收一個Collection的實例,將該實例轉化成ArrayList對象。
  • add(E e)方法

    先看add(E e)方法相關的源碼:

    public boolean add(E e) {ensureCapacityInternal(size + 1); // Increments modCount!!elementData[size++] = e;return true;}private void ensureCapacityInternal(int minCapacity) {if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity);}ensureExplicitCapacity(minCapacity);}private void ensureExplicitCapacity(int minCapacity) {modCount++;// overflow-conscious codeif (minCapacity - elementData.length > 0)grow(minCapacity);}private void grow(int minCapacity) {// overflow-conscious codeint oldCapacity = elementData.length;int newCapacity = oldCapacity + (oldCapacity >> 1);if (newCapacity - minCapacity < 0)newCapacity = minCapacity;if (newCapacity - MAX_ARRAY_SIZE > 0)newCapacity = hugeCapacity(minCapacity);// minCapacity is usually close to size, so this is a win:elementData = Arrays.copyOf(elementData, newCapacity);}

    我們可以看到add(E e)方法首先會調用ensureCapacityInternal方法來檢查容量大小,如果發現elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA,即ArrayList通過無參構造器來實例化并且是第一次調用add方法,那么會將容量大小設置為默認容量大小10。

    ensureExplicitCapacity方法判斷如果所需的最小容量大于數組當前長度,那么需要擴容

    grow方法來進行實際的擴容操作,新的數組長度是原來的3/2倍,并且新數組長度不能大于Integer.MAX_VALUE - 8,然后使用Arrays.copyOf方法將原來的數據復制到新數組中

    使用ArrayList遇到的坑

    如下代碼中,在遍歷List時,調用了remove方法,刪除元素a

    //arrayList中的值為 [a,a,c,a,a] for (int i = 0; i < arrayList.size(); i++) {if (arrayList.get(i) == "a") {arrayList.remove(i);} } System.out.println(arrayList);

    這段代碼看似解決了刪除列表中所有的a元素,但是刪除后得出List的結果為[a, c, a],為什么這種方式沒有達到想要的效果,其實仔細分析后會發現,在調用remove()方法時List的長度會發生變化而且元素的位置會發生移動,從而在遍歷時list實際上是變化的,例如

  • 當i=0時,此時list中的元素為[a,a,c,a,a],
    • 但當i=1時,此時List中的元素為[a,c,a,a],元素的位置發生了移動,從而導致在遍歷的過程中不能達到刪除的效果

    解決方案

  • 逆向遍歷
  • 使用迭代器遍歷(推薦用此方法)
  • Iterator<String> ite = arrayList.listIterator(); while (ite.hasNext()){if(ite.next() == "a")ite.remove(); } System.out.println(arrayList);

    其他注意點

    ArryList進行擴容時,需要將原有數組的元素拷貝到一個新數組中,非常耗時,所以建議在確定ArrayList元素數量的時候再使用它。

    2、HashMap

    繼承AbstractMap,是基于哈希表的Map接口的非同步實現,存儲的對象是Node(包含key和value),key和value都可以為null,最多存在一個鍵值對的key為null。不保證有序(比如插入順序),并且不保證順序不隨時間發生變化。

    JDK1.7以前由數組+鏈表組成,JDK1.8由數組+鏈表+紅黑樹組成,使用鏈表是為了解決哈希沖突(兩個對象的hashCode方法計算的哈希碼值一致導致計算出的數組下標相同),當鏈表長度大于閾值(默認8)并且當前數組長度大于64時,此時此下標位置上的所有元素使用紅黑樹存儲,注意如果僅僅是某個鏈表長度大于閾值,選擇進行擴容。

    底層數據結構:

    1,new HashMap<>()

    jdk1.7之前,創建了一個長度16的Entry數組,jdk1.8是在首次調用put方法時,創建一個長度16的Node數組。

    2.put方法

    對key做hash操作(先調用key的hashCode方法得到哈希碼值,然后哈希碼值跟它無符號右移16位的值做異或運算),再調用putVal方法

    先判斷Node數組是否為null或者長度等于0,如果是那么resize方法進行擴容

    hash操作得到的值與數組長度-1做與運算得到數組下標

    得到下標后,判斷數組當前位置是否有元素,如果沒有,將鍵值對放到數組當前位置

    如果已有元素,那么調用新key的equals方法跟原有key進行比較,如果相同替換原有value,如果不相同將新的鍵值對放到鏈表的末尾或者放到紅黑樹中

    上面流程完成后,如果size>threshold,那么調用resize方法擴容

    3.resize方法

    由于每次擴容都是翻倍,與原來的n-1&hash相比,只是多了一個二進制位,所以節點要么是原來位置,要么是原來位置+原容量這個位置。因此只需要判斷原來的hash值新增的bit位是1還是0

    問題:

    1,為什么HashMap的容量是2的冪次方?容量是2的冪次方有什么好處?如果創建HashMap對象時實參不是2的冪次方會怎么樣?

    jdk1.8putVal方法計算數組下標的時候使用(數組長度 - 1) & hash,數組長度是2的冪次方的時候這個表達式的結果與hash%數組長度相同,并且能夠讓數據均勻分布減少哈希碰撞

    tableSizeFor方法會計算出一個大于且最接近的2的冪次方數,通過一系列的無符號右移運算和與運算得出(思想是將這個數的最高位下面的bit位全部變成1,第一次運算保證最高位至少有兩個連續的1,第二次運算保證最高位至少有四個連續的1。。。,最后一次運算保證最高位有十六個連續的1)

    2.loadFactor負載因子為什么是0.75

    當size>capacity*loadFactor時哈希表會擴容,如果太大會導致查詢效率低,過小會導致數組的利用率低,存放的數據會很分散。0.75是官方經過大量測試得出的最優的結果。

    JDK1.8HashMap的源碼

    重要屬性

    static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默認的初始化容量16,HashMap容器的容量必須是2的次方static final int MAXIMUM_CAPACITY = 1 << 30;//最大的容量static final float DEFAULT_LOAD_FACTOR = 0.75f;//默認的負載因子,構造函數沒有指定時使用static final int TREEIFY_THRESHOLD = 8;//樹化的閾值,哈希桶元素的數量至少為8時才會轉化成紅黑樹static final int UNTREEIFY_THRESHOLD = 6;//鏈表化的閾值,當進行resize操作時,哈希桶元素的數量不超過6時才會轉化成鏈表static final int MIN_TREEIFY_CAPACITY = 64;//樹化最小容量,容量至少為64時才會轉化成紅黑樹transient Node<K,V>[] table;//HashMap容器實現存儲功能的數組,必須是2的次方transient Set<Map.Entry<K,V>> entrySet;//保存緩存的entrySettransient int size;//HashMap容器包含的鍵值對數量transient int modCount;//HashMap結構被修改的次數(是指鍵值對數量改變或者rehash)int threshold;//進行resize操作的大小,=當前最大容量*負載因子final float loadFactor;//負載因子

    重要的內部類

    Node:基本的哈希桶節點

    static class Node<K,V> implements Map.Entry<K,V> {final int hash;final K key;V value;Node<K,V> next;Node(int hash, K key, V value, Node<K,V> next) {this.hash = hash;this.key = key;this.value = value;this.next = next;}public final K getKey() { return key; }public final V getValue() { return value; }public final String toString() { return key + "=" + value; }public final int hashCode() {return Objects.hashCode(key) ^ Objects.hashCode(value);}public final V setValue(V newValue) {V oldValue = value;value = newValue;return oldValue;}public final boolean equals(Object o) {if (o == this)return true;if (o instanceof Map.Entry) {Map.Entry<?,?> e = (Map.Entry<?,?>)o;if (Objects.equals(key, e.getKey()) &&Objects.equals(value, e.getValue()))return true;}return false;}}

    TreeNode:繼承LinkedHashMap的內部類Entry,而LinkedHashMap.Entry又繼承Node,所以TreeNode算是Node的孫子類

    TreeNode的方法太多,這里只貼出它的屬性

    TreeNode<K,V> parent; // red-black tree linksTreeNode<K,V> left;TreeNode<K,V> right;TreeNode<K,V> prev; // needed to unlink next upon deletionboolean red;

    重要方法

    static final int tableSizeFor(int cap) {int n = cap - 1;n |= n >>> 1;n |= n >>> 2;n |= n >>> 4;n |= n >>> 8;n |= n >>> 16;return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;}//計算hashstatic final int hash(Object key) {int h;return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);//先計算hashCode,然后將得到的值與它的高16位做異或運算,得到hash}public V put(K key, V value) {return putVal(hash(key), key, value, false, true);}final V putVal(int hash, K key, V value, boolean onlyIfAbsent,boolean evict) {Node<K,V>[] tab; Node<K,V> p; int n, i;if ((tab = table) == null || (n = tab.length) == 0)n = (tab = resize()).length;if ((p = tab[i = (n - 1) & hash]) == null)//計算index,數組長度減一并與hash做與運算tab[i] = newNode(hash, key, value, null);else {Node<K,V> e; K k;if (p.hash == hash &&((k = p.key) == key || (key != null && key.equals(k))))e = p;else if (p instanceof TreeNode)e = ((TreeNode<K,V>)p).putTreeVal(this, tab, hash, key, value);else {for (int binCount = 0; ; ++binCount) {if ((e = p.next) == null) {p.next = newNode(hash, key, value, null);if (binCount >= TREEIFY_THRESHOLD - 1) //如果鏈表的長度大于等于樹化閾值8,將鏈表轉換成紅黑樹treeifyBin(tab, hash);break;}if (e.hash == hash &&((k = e.key) == key || (key != null && key.equals(k))))break;p = e;}}if (e != null) { // existing mapping for keyV oldValue = e.value;if (!onlyIfAbsent || oldValue == null)e.value = value;afterNodeAccess(e);return oldValue;}}++modCount;if (++size > threshold)resize();afterNodeInsertion(evict);return null;}//此方法只是將鏈表轉換成雙向鏈表,真正樹化操作在treeify方法final void treeifyBin(Node<K,V>[] tab, int hash) {int n, index; Node<K,V> e;if (tab == null || (n = tab.length) < MIN_TREEIFY_CAPACITY)resize();else if ((e = tab[index = (n - 1) & hash]) != null) {TreeNode<K,V> hd = null, tl = null;do {TreeNode<K,V> p = replacementTreeNode(e, null);if (tl == null)hd = p;else {p.prev = tl;tl.next = p;}tl = p;} while ((e = e.next) != null);if ((tab[index] = hd) != null)hd.treeify(tab);}}//將雙向鏈表轉換成平衡二叉查找樹final void treeify(Node<K,V>[] tab) {TreeNode<K,V> root = null;for (TreeNode<K,V> x = this, next; x != null; x = next) {next = (TreeNode<K,V>)x.next;x.left = x.right = null;if (root == null) {x.parent = null;x.red = false;root = x;}else {K k = x.key;int h = x.hash;Class<?> kc = null;for (TreeNode<K,V> p = root;;) {int dir, ph;K pk = p.key;if ((ph = p.hash) > h)dir = -1;else if (ph < h)dir = 1;else if ((kc == null &&(kc = comparableClassFor(k)) == null) ||(dir = compareComparables(kc, k, pk)) == 0)dir = tieBreakOrder(k, pk);TreeNode<K,V> xp = p;if ((p = (dir <= 0) ? p.left : p.right) == null) {x.parent = xp;if (dir <= 0)xp.left = x;elsexp.right = x;root = balanceInsertion(root, x);break;}}}}moveRootToFront(tab, root);}final Node<K,V>[] resize() {//把沒插入之前的哈希數組做我誒oldTalNode<K,V>[] oldTab = table;//old的長度int oldCap = (oldTab == null) ? 0 : oldTab.length;//old的臨界值int oldThr = threshold;//初始化new的長度和臨界值int newCap, newThr = 0;//oldCap > 0也就是說不是首次初始化,因為hashMap用的是懶加載if (oldCap > 0) {//大于最大值if (oldCap >= MAXIMUM_CAPACITY) {//臨界值為整數的最大值threshold = Integer.MAX_VALUE;return oldTab;}//標記##,其它情況,擴容兩倍,并且擴容后的長度要小于最大值,old長度也要大于16else if ((newCap = oldCap << 1) < MAXIMUM_CAPACITY &&oldCap >= DEFAULT_INITIAL_CAPACITY)//臨界值也擴容為old的臨界值2倍newThr = oldThr << 1; }/**如果oldCap<0,但是已經初始化了,像把元素刪除完之后的情況,那么它的臨界值肯定還存在, 如果是首次初始化,它的臨界值則為0**/else if (oldThr > 0) newCap = oldThr;//首次初始化,給與默認的值else { newCap = DEFAULT_INITIAL_CAPACITY;//臨界值等于容量*加載因子newThr = (int)(DEFAULT_LOAD_FACTOR * DEFAULT_INITIAL_CAPACITY);}//此處的if為上面標記##的補充,也就是初始化時容量小于默認值16的,此時newThr沒有賦值if (newThr == 0) {//new的臨界值float ft = (float)newCap * loadFactor;//判斷是否new容量是否大于最大值,臨界值是否大于最大值newThr = (newCap < MAXIMUM_CAPACITY && ft < (float)MAXIMUM_CAPACITY ?(int)ft : Integer.MAX_VALUE);}//把上面各種情況分析出的臨界值,在此處真正進行改變,也就是容量和臨界值都改變了。threshold = newThr;//表示忽略該警告@SuppressWarnings({"rawtypes","unchecked"})//初始化Node<K,V>[] newTab = (Node<K,V>[])new Node[newCap];//賦予當前的tabletable = newTab;//此處自然是把old中的元素,遍歷到new中if (oldTab != null) {for (int j = 0; j < oldCap; ++j) {//臨時變量Node<K,V> e;//當前哈希桶的位置值不為null,也就是數組下標處有值,因為有值表示可能會發生沖突if ((e = oldTab[j]) != null) {//把已經賦值之后的變量置位null,當然是為了好回收,釋放內存oldTab[j] = null;//如果下標處的節點沒有下一個元素if (e.next == null)//把該變量的值存入newCap中,e.hash & (newCap - 1)并不等于jnewTab[e.hash & (newCap - 1)] = e;//該節點為紅黑樹結構,也就是存在哈希沖突,該哈希桶中有多個元素else if (e instanceof TreeNode)//把此樹進行轉移到newCap中((TreeNode<K,V>)e).split(this, newTab, j, oldCap);else { /**此處表示為鏈表結構,同樣把鏈表轉移到newCap中,就是把鏈表遍歷后,把值轉過去,在置位null**/Node<K,V> loHead = null, loTail = null;Node<K,V> hiHead = null, hiTail = null;Node<K,V> next;do {next = e.next;if ((e.hash & oldCap) == 0) {if (loTail == null)loHead = e;elseloTail.next = e;loTail = e;}else {if (hiTail == null)hiHead = e;elsehiTail.next = e;hiTail = e;}} while ((e = next) != null);if (loTail != null) {loTail.next = null;newTab[j] = loHead;}if (hiTail != null) {hiTail.next = null;newTab[j + oldCap] = hiHead;}}}}}//返回擴容后的hashMapreturn newTab;}

    關于更詳細的HashMap紅黑樹知識,請參考【Java入門提高篇】Day25 史上最詳細的HashMap紅黑樹解析 - 弗蘭克的貓 - 博客園

    遍歷HashMap

    Map<String,String> map = new HashMap<String,String>();map.put("郭如飛", "yz");map.put("余豪", "lazy");for (Entry<String, String> entry : map.entrySet()){System.out.println("鍵:"+entry.getKey()+",值:"+entry.getValue());}

    3、HashSet

    HashSet繼承AbstractSet,實現Set接口,內部存儲是HashMap。當HashSet中存儲元素時,直接將這個元素作為key,默認的Object常量作為value,存儲在map中。

    4、LinkedList

    LinkedList繼承了AbstractSequentialList,實現了List和Deque接口。本質上是一個雙向鏈表。

    由于實現了Deque接口,可以將LinkedList當做一個隊列,去處理其中的元素。

    AbstractSequentialList類實現連續訪問數據(鏈表)所需的工作,如果是隨機訪問(數組)建議用AbstractList,而不是AbstractSequentialList

    重要屬性

    transient int size = 0;//集合大小transient Node<E> first;//指向頭結點transient Node<E> last;//指向尾結點

    構造方法

    public LinkedList() {}public LinkedList(Collection<? extends E> c) {this();addAll(c);}

    內部類

    Node用來表示LinkedList集合的元素

    private static class Node<E> {E item;Node<E> next;Node<E> prev;Node(Node<E> prev, E element, Node<E> next) {this.item = element;this.next = next;this.prev = prev;}}

    重要方法

    add(E e)

    public boolean add(E e) {linkLast(e);return true;}void linkLast(E e) {final Node<E> l = last;final Node<E> newNode = new Node<>(l, e, null);//創建一個Nodelast = newNode;//尾結點指向當前元素if (l == null)first = newNode;//如果last==null說明鏈表沒有任何元素,此時添加的元素即為頭結點elsel.next = newNode;//將鏈表的最后一個元素指向新的元素size++;modCount++;}

    remove(Object o)、remove(int index)

    public boolean remove(Object o) {if (o == null) {for (Node<E> x = first; x != null; x = x.next) {if (x.item == null) {unlink(x);return true;}}} else {for (Node<E> x = first; x != null; x = x.next) {if (o.equals(x.item)) {unlink(x);return true;}}}return false;}public E remove(int index) {checkElementIndex(index);return unlink(node(index));}E unlink(Node<E> x) {// assert x != null;final E element = x.item;final Node<E> next = x.next;final Node<E> prev = x.prev;if (prev == null) {first = next;} else {prev.next = next;x.prev = null;}if (next == null) {last = prev;} else {next.prev = prev;x.next = null;}x.item = null;size--;modCount++;return element;}Node<E> node(int index) {// assert isElementIndex(index);if (index < (size >> 1)) {Node<E> x = first;for (int i = 0; i < index; i++)x = x.next;return x;} else {Node<E> x = last;for (int i = size - 1; i > index; i--)x = x.prev;return x;}}

    5、Vector

    繼承了AbstractList,實現了List接口,是一個線程安全的動態數組。

    同ArrayList相比,除了線程安全(很多方法加了synchronized)外,其他地方基本一致。

    6、Stack

    繼承了Vector,基于動態數組實現的一個線程安全的棧

    7、Hashtable和HashMap的區別

    1、 hashmap中key和value均可以為null,但是hashtable中key和value均不能為null。

    2、 hashmap采用的是數組(桶位)+鏈表+紅黑樹結構實現(jdk1.8之后),而hashtable中采用的是數組(桶位)+鏈表實現。

    3、 hashmap中出現hash沖突時,如果鏈表節點數小于8時是將新元素加入到鏈表的末尾,而hashtable中出現hash沖突時采用的是將新元素加入到鏈表的開頭。

    4、 hashmap中數組容量的大小要求是2的n次方,如果初始化時不符合要求會進行調整,必須為2的n次方,而hashtable中數組容量的大小可以為任意正整數。

    5、 hashmap中的尋址方法采用的是位運算按位與,而hashtable中尋址方式采用的是求余數。

    6、 hashmap不是線程安全的,而hashtable是線程安全的,hashtable中的get和put方法均采用了synchronized關鍵字進行了方法同步。

    7、 hashmap中默認容量的大小是16,而hashtable中默認數組容量是11。

    8、集合類中常用的方法

    Java集合框架的實現源碼,經常看到 Arrays.copy()、System.arraycopy() 方法,以下稍作整理。

    Arrays.copyOf()?

    作用:基于原數組復制一個新的數組并返回,不影響原有數組

    我們這里看到copyOf方法有很多重載的方法,這里我只看public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType),因為其他方法同這個方法類似。

    public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) {@SuppressWarnings("unchecked")T[] copy = ((Object)newType == (Object)Object[].class)? (T[]) new Object[newLength]: (T[]) Array.newInstance(newType.getComponentType(), newLength);System.arraycopy(original, 0, copy, 0,Math.min(original.length, newLength));return copy;}

    從源碼可以看出來,copyOf方法是通過System.arraycopy方法來復制數組的。下面我們看一下

    System.arraycopy

    public static native void arraycopy(Object src, int srcPos,Object dest, int destPos,int length);

    src:源數組

    srcPos:源數組開始復制的索引

    dest:目標數組

    destPos:目標數組開始復制的索引

    length:復制的長度

    注意:System.arraycopy是淺復制,如果數組元素的類型是引用類型,復制的是引用類型對象的地址值,不是真的將原有對象復制一份。

    Object[] toArray();<T> T[] toArray(T[] a);

    Collection接口定義的兩個抽象方法,集合實現類必須實現的兩個方法,將集合轉換成數組,區別是后者泛型方法。

    9、Iterator迭代器實現原理

    Java中Iterator(迭代器)實現原理 - wss96 - 博客園 (cnblogs.com)

    總結

    以上是生活随笔為你收集整理的【JAVA基础篇】集合框架的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    精品国产免费人成在线观看 | 久久www免费人成看片高清 | 久久久久综合精品福利啪啪 | 最近更新好看的中文字幕 | 国产高清不卡一区二区三区 | 开心综合网 | 人人插人人澡 | 99这里只有精品99 | 探花系列在线 | 在线观看视频色 | 亚洲在线网址 | 中文字幕第一页av | 国产香蕉97碰碰碰视频在线观看 | 国产色一区 | 精品国产乱码久久久久久1区二区 | 日韩激情小视频 | 国产精品日韩欧美一区二区 | 欧美一级久久久久 | av电影 一区二区 | 久久免费国产精品 | www.在线观看av | 韩国三级在线一区 | 亚洲精品动漫在线 | 一级片视频在线 | 99色婷婷 | 在线观看日本高清mv视频 | 久久九九久久 | 97精品超碰一区二区三区 | 日韩字幕| 网站你懂的 | 日韩欧美大片免费观看 | 亚洲做受高潮欧美裸体 | 国产精品白丝av | 97人人澡人人爽人人模亚洲 | 最近最新最好看中文视频 | 亚洲在线激情 | www国产在线 | 久久综合日 | 99国产精品 | 丁香高清视频在线看看 | h文在线观看免费 | 中文字幕一区在线观看视频 | 久久精品99久久久久久 | 天天天天天天干 | 色诱亚洲精品久久久久久 | 天天艹天天 | 亚洲一级国产 | 免费在线观看av电影 | 在线观看一区二区精品 | 日韩欧美在线免费 | 精品国产一区二区久久 | 日本婷婷色| 国产免费区 | 亚洲精品在线视频播放 | 国产九色视频在线观看 | 国产永久免费高清在线观看视频 | 色综合小说| 天天色天天射天天干 | 国产一区av在线 | 五月综合激情 | 国产91精品一区二区 | 天天爽天天爽夜夜爽 | 中国一 片免费观看 | 国产一线天在线观看 | 国产精品va在线观看入 | 欧美精品一区二区三区四区在线 | 日韩在线观看精品 | 亚洲男女精品 | 亚洲免费一级 | 国产二区电影 | 黄色视屏免费在线观看 | 在线日韩一区 | 成人av在线影视 | 国产一级免费在线 | 中文字幕免费一区 | 激情狠狠干 | 国产在线观看免费观看 | 国内精品久久天天躁人人爽 | 亚洲精品视频在线观看免费视频 | av中文字幕在线电影 | 亚洲人毛片 | 婷婷网站天天婷婷网站 | 成人免费看片网址 | 手机在线永久免费观看av片 | 国精产品999国精产品岳 | 日韩国产精品一区 | 久草在线视频网 | 深夜免费小视频 | 亚州精品天堂中文字幕 | 免费一级黄色 | 免费看片亚洲 | 97碰在线| 亚洲理论视频 | 狠狠狠干狠狠 | 日韩av资源在线观看 | 色播激情五月 | 成人午夜在线电影 | 天天看天天操 | 久久资源在线 | 91精品在线免费观看 | 高清av影院| 日韩欧美xx| 国产精品久久一区二区三区不卡 | 日韩一区二区免费播放 | 国产亚洲资源 | 日韩综合在线观看 | 国产欧美中文字幕 | 成人三级视频 | 青青河边草观看完整版高清 | 99久久精品国产免费看不卡 | 国产精品久久久久久麻豆一区 | 国产精品免费视频久久久 | 亚洲天天综合网 | 日韩欧美69 | 久久 在线 | 超碰com | 国产成人黄色av | 欧美粗又大 | 免费观看全黄做爰大片国产 | 狠狠躁夜夜躁人人爽超碰91 | 免费看十八岁美女 | 97超碰福利久久精品 | 亚洲成av人片一区二区梦乃 | 日韩高清国产精品 | 免费毛片一区二区三区久久久 | 97超碰人人| 久久欧美在线电影 | 欧美电影在线观看 | 五月激情站| 亚洲永久精品视频 | 国产免费不卡 | 午夜精品久久一牛影视 | 欧美一区二区三区免费看 | 日本电影久久 | 在线观看日韩国产 | 国产福利一区在线观看 | 激情五月在线观看 | 三级av片 | av官网在线 | 91精品啪在线观看国产81旧版 | 亚洲国产一区av | 亚洲成人频道 | 超碰在线亚洲 | 国产 欧美 在线 | 亚洲国产日韩一区 | 日日夜夜免费精品 | 精品96久久久久久中文字幕无 | 欧美日韩国产页 | 婷婷色资源 | 午夜性福利| 午夜久久福利视频 | 日韩a在线观看 | 国产精品一区电影 | 免费高清在线观看成人 | 久久不卡免费视频 | 2022国产精品视频 | av网址在线播放 | 黄污在线看 | 精品免费久久久久久 | 久久精品亚洲综合专区 | 日本中文字幕视频 | 精品一区 精品二区 | av综合站 | 欧美午夜精品久久久久久浪潮 | 天堂麻豆 | 一区二区三区在线免费观看 | 四虎欧美 | 国产精品99久久久精品 | 国产精品美女视频网站 | 久久伊人五月天 | 97人人模人人爽人人喊网 | 亚洲综合涩 | 啪一啪在线 | 91亚洲在线 | 免费在线观看污网站 | 91看片淫黄大片一级在线观看 | 一区二区三区电影 | 亚洲欧美日韩国产一区二区 | 国产视频精选 | 国产精品亚洲a | 91黄视频在线观看 | 欧美激情视频一区二区三区免费 | 天天摸夜夜添 | 国产精品视频大全 | 欧美一级免费黄色片 | 99国产精品免费网站 | 婷婷草 | 欧美最新大片在线看 | 国产精品久久精品 | 麻豆免费视频网站 | 亚洲婷婷伊人 | 欧美日韩国产一区二区在线观看 | 在线精品亚洲一区二区 | 久久久国产精品视频 | 91在线永久 | 色精品视频 | 久草精品免费 | 国产美女视频免费 | 日本丰满少妇免费一区 | 中文字幕中文字幕在线中文字幕三区 | 大荫蒂欧美视频另类xxxx | 久久久久久久久久久福利 | 日韩高清一二三区 | 91av免费观看 | 天天色成人 | 在线观看福利网站 | 欧美成人91| 操操综合| 欧美激情精品久久久久久变态 | 国产精选在线 | 干亚洲少妇 | 黄色在线成人 | 18国产精品白浆在线观看免费 | 欧美一区二区三区免费看 | 91日本在线播放 | 搡bbbb搡bbb视频 | 久草久草久草久草 | 99精品在线免费视频 | 中文字幕无吗 | 久久久99久久 | 亚洲最大成人网4388xx | 首页中文字幕 | 久久久久免费精品国产小说色大师 | 欧洲激情在线 | 中文字幕在线乱 | 日本免费一二三区 | 免费看在线看www777 | av中文字幕第一页 | 日韩伦理片一区二区三区 | 国产精品成人一区二区三区吃奶 | 色狠狠干| 欧美成人按摩 | 亚洲三级黄色 | 色婷婷九月 | 天天天天爱天天躁 | 成人观看视频 | 91av欧美 | 国产亚洲一区二区三区 | 久久久久久久久福利 | 国产又粗又猛又色又黄网站 | 精品视频 | 久草在线在线视频 | 久久官网| 91色蜜桃 | 国产很黄很色的视频 | 久久九九国产视频 | 日韩18p| 中文字幕视频播放 | 久久福利在线 | 国产精品欧美久久久久天天影视 | 国产精品久久久久久久久久白浆 | 免费黄av | www.超碰 | 精品国产三级 | 久久久久日本精品一区二区三区 | av成人免费在线观看 | 国产精品高 | 国产不卡网站 | 波多野结衣久久资源 | 天堂中文在线视频 | 免费观看一级 | 日本精品久久久久中文字幕 | 97视频网站 | 亚洲永久精品在线观看 | 久久久久9999亚洲精品 | 香蕉精品视频在线观看 | av电影中文字幕 | 久久精品视频在线观看免费 | 亚洲日韩欧美一区二区在线 | 四虎成人精品永久免费av | 日本黄色免费电影网站 | 国产精品v a免费视频 | 在线探花| 在线观看91精品视频 | 久久综合久色欧美综合狠狠 | 在线国产黄色 | 98精品国产自产在线观看 | 成人一级免费视频 | 在线91网 | 黄色精品网站 | 国产日韩精品一区二区三区 | 日韩在线观看网站 | 亚洲国产免费 | 手机在线黄色网址 | www.国产毛片 | 黄色一级动作片 | 91福利国产在线观看 | 国产1级毛片 | 我要看黄色一级片 | 国产精品自拍在线 | 欧美a级在线播放 | 亚洲va欧美va| av片免费播放 | 国产午夜精品久久久久久久久久 | 精品国产一二三 | 精品国产伦一区二区三区观看说明 | 色a综合| 五月婷丁香网 | 黄网站www | 人人添人人 | 久久久久亚洲最大xxxx | 97色资源 | 91在线成人 | 亚洲精品男女 | 美女视频a美女大全免费下载蜜臀 | 国产成人精品久久 | 亚洲精品97| 激情欧美一区二区免费视频 | 国产成人av网 | 狠狠的操狠狠的干 | av中文字幕av | 亚洲在线视频观看 | 九九综合九九综合 | 97av视频| 国产夫妻av在线 | 国产麻豆剧传媒免费观看 | 亚洲一区二区精品在线 | 欧美日韩免费一区二区三区 | 亚洲综合导航 | 欧美人交a欧美精品 | 网址你懂的在线观看 | 久久精品国产久精国产 | 91亚洲精品在线 | 五月天久久 | 九九久久在线看 | 欧洲精品码一区二区三区免费看 | 色综合狠狠干 | 亚洲资源网 | 国产亚洲日 | 精品久久久久久亚洲综合网 | japanesexxx乱女另类 | 日本中文字幕系列 | 国产成人精品日本亚洲999 | 日本久久久久久 | 91视频在线观看免费 | 一本一道久久a久久精品蜜桃 | 亚洲欧美一区二区三区孕妇写真 | 在线观看黄色免费视频 | 中文字幕在线日亚洲9 | 久操97| 丁香花在线观看视频在线 | 激情丁香综合五月 | 亚洲永久精品在线 | www久久九| 超碰人在线 | 91九色性视频 | 黄色福利网 | 97在线观视频免费观看 | 亚洲精品午夜久久久久久久久久久 | 久久五月婷婷丁香 | 久视频在线播放 | 超碰国产在线 | 日精品 | 久久视频国产精品免费视频在线 | 国产精品一区二区在线免费观看 | 亚洲黄色小说网址 | 一区二区激情视频 | 国产欧美在线一区二区三区 | 国产成人一区二区三区电影 | 热精品| 国产亚洲在线 | 特级毛片网站 | 狠狠网亚洲精品 | 一级黄色免费网站 | 五月天九九| 视频一区在线免费观看 | 国产99久久久久 | 久久视频精品在线 | 三级黄色在线观看 | 亚洲精品免费在线视频 | 九九九免费视频 | 欧美激情另类 | 91精品国 | 国产精品视频大全 | 日韩免费中文 | 国产成人三级三级三级97 | 成人免费xxx在线观看 | 日本在线观看中文字幕 | 色婷婷午夜| 视频一区二区在线 | 日韩二区三区在线观看 | 91入口在线观看 | 精品极品在线 | 涩五月婷婷 | 久久久91精品国产一区二区三区 | 久久国产精品一区二区三区四区 | 狠狠夜夜| 精品1区二区| 色久综合 | 久久久久免费视频 | 西西人体4444www高清视频 | 成人国产精品一区 | 国产精品无 | 欧美性久久久久久 | 精品字幕在线 | 免费一级片久久 | 一级成人在线 | 午夜久久影院 | 亚洲草视频 | 九九爱免费视频 | 精品国产欧美一区二区三区不卡 | 免费av网站观看 | 国产中文字幕一区 | 成 人 黄 色 视频免费播放 | 日韩免费网站 | 精品国产乱码久久久久久1区二区 | 久久视频免费在线 | 一区二区三区污 | 超碰97免费观看 | 久久国内视频 | 亚洲手机天堂 | 亚洲成人动漫在线观看 | 久久综合影视 | 日本黄色免费网站 | 五月婷婷开心 | 国产99久久久久久免费看 | 最近日本mv字幕免费观看 | 日本99干网 | 天天五月天色 | 国产成人a亚洲精品v | 日韩资源在线播放 | 日日操天天操狠狠操 | 免费看短 | 成人三级黄色 | 久久精品超碰 | 国产精品1000 | 久久综合丁香 | 久久久国际精品 | 久久色网站 | 国产区欧美 | 国产精品一区二区久久国产 | 黄色三几片 | 91入口在线观看 | 日韩在线短视频 | 国产精品密入口果冻 | 日韩二区精品 | 国产日韩精品在线 | 99热精品视 | 久久www免费人成看片高清 | 亚洲精品激情 | 91高清一区 | 天天操夜夜操国产精品 | 亚洲精品一区中文字幕乱码 | 五月婷色 | 水蜜桃亚洲一二三四在线 | 在线观看日韩精品视频 | 视频在线观看亚洲 | 在线精品亚洲 | 久久久久久久久久久黄色 | 精品在线观看一区二区三区 | 91在线影院| 97色婷婷成人综合在线观看 | 久久不见久久见免费影院 | 国产一级在线免费观看 | 国产精品久久久久久久久久免费 | 69国产盗摄一区二区三区五区 | 97理论片| 久久国产精品系列 | 中文字幕亚洲综合久久五月天色无吗'' | 又湿又紧又大又爽a视频国产 | 欧美精品亚州精品 | 午夜精品久久久久久久99热影院 | 天天操天操 | 精品国产诱惑 | 久久人人爽人人片 | 在线观看片 | 九九综合久久 | 国产精品99久久久精品 | 五月婷婷国产 | 国产一级二级在线播放 | 国产视频97 | 高潮毛片无遮挡高清免费 | 精品久久久久免费极品大片 | 激情深爱 | 黄色官网在线观看 | 精品国产123| 日韩视频在线一区 | 91麻豆精品91久久久久同性 | 日本中文一区二区 | 成人久久视频 | 国产91精品久久久久 | 日韩成人邪恶影片 | 青青草国产免费 | 亚洲每日更新 | 久草视频在线资源 | 国产视频一区二区在线播放 | 在线视频 精品 | 五月导航 | 成人久久18免费网站图片 | 成年人黄色免费网站 | 免费开视频| 亚洲一一在线 | 欧美俄罗斯性视频 | 日日夜夜添| 91精品国产欧美一区二区成人 | av黄色影院| 99精品一级欧美片免费播放 | 在线影视 一区 二区 三区 | 香蕉在线视频观看 | 精品1区二区 | 黄色免费在线看 | 天天操比| 久久综合电影 | 国产手机在线观看视频 | 日日夜色| 婷婷久久一区 | www亚洲国产 | 久久久久久久综合色一本 | 在线观看中文字幕网站 | 麻豆国产精品一区二区三区 | 久久综合免费视频影院 | 首页中文字幕 | 色综合久久精品 | 国产伦理精品一区二区 | 激情综合色播五月 | 少妇性bbb搡bbb爽爽爽欧美 | 精品久久久久久一区二区里番 | 国产第一页精品 | 97在线观看免费高清 | 日韩免费网址 | 国产精品99视频 | www.黄色网.com | 日韩精品你懂的 | 久久精品视 | 国产无吗一区二区三区在线欢 | 91 在线视频播放 | 综合网欧美 | av色图天堂网 | 超碰国产在线观看 | 天无日天天操天天干 | www.五月激情.com | 久久久久亚洲精品中文字幕 | 婷婷六月天在线 | 超碰公开在线观看 | 久久黄色免费 | 亚洲人成在线电影 | 日韩在线网址 | 日韩欧美精品在线观看视频 | 久久国产精品一区二区三区 | 在线播放国产精品 | 日韩在线电影一区 | 亚洲国产精品小视频 | 天天射天天色天天干 | 激情久久网 | 视频成人永久免费视频 | 黄色三级免费观看 | 欧美日韩国产高清视频 | 国产精品白浆视频 | 中文在线免费视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产精品久久久久久久久久了 | 69亚洲视频 | 国内精品久久久久久中文字幕 | 福利一区在线视频 | 2019久久精品 | 黄色成人小视频 | 天天射射天天 | 国产视频亚洲精品 | 色婷婷电影 | 日韩毛片在线播放 | 亚洲精品一区二区在线观看 | 免费不卡中文字幕视频 | 丁香午夜| 国产在线a | av黄色免费在线观看 | 欧美成人精品xxx | 狠狠夜夜 | 久久精品亚洲一区二区三区观看模式 | 免费在线电影网址大全 | 日韩区视频 | 久久视| 日本久久成人中文字幕电影 | 国产精品麻豆果冻传媒在线播放 | 国产成人精品一区二区三区福利 | 中文字幕亚洲精品日韩 | 韩国一区二区av | 欧美日韩国产伦理 | 日韩在线观看视频在线 | 国产小视频福利在线 | 在线看岛国av | 国产亚洲精品中文字幕 | 一区在线电影 | 丁香五月缴情综合网 | 久草精品视频在线看网站免费 | 国产手机在线观看 | 啪嗒啪嗒免费观看完整版 | 久久精品免费电影 | 国产免费高清视频 | 四虎5151久久欧美毛片 | av网址在线播放 | 欧美日韩精品电影 | 欧美一区免费在线观看 | 国产在线高清视频 | 日韩成人免费在线 | 天天插日日插 | 中文字幕 国产视频 | 三级免费黄色 | 麻豆传媒在线免费看 | 精品国产免费av | 黄色网址在线播放 | 免费观看av网站 | 婷婷四房综合激情五月 | 国产精品电影在线 | 天天干天天射天天操 | 西西444www大胆无视频 | 在线99| 日韩在线观看免费 | 一级理论片在线观看 | 亚洲jizzjizz日本少妇 | 一区二区三区四区五区六区 | 免费视频三区 | 亚洲经典视频 | 成人影片免费 | 国产91综合一区在线观看 | 久草在线中文视频 | 色综合天天综合网国产成人网 | www.天天操.com | 国产中文字幕网 | 手机看片午夜 | 久久久国产精品麻豆 | 久久视频在线免费观看 | 日本视频网 | 成人在线一区二区 | 国产一区视频免费在线观看 | 精品国产资源 | 亚洲精品综合一区二区 | 欧美日韩国产亚洲乱码字幕 | 一区二区三区在线视频111 | 在线日韩 | 日韩电影一区二区在线 | 国产乱对白刺激视频在线观看女王 | 成人电影毛片 | 国产九九精品视频 | 久久9视频 | 久久9精品| 欧美综合色 | 最新av电影网址 | 欧美精品你懂的 | 日韩大片免费在线观看 | 99久久精品电影 | 99精品国产aⅴ | 黄色app网站在线观看 | 国产在线精品一区二区三区 | 91精品国产麻豆 | 国产视频一区在线播放 | 亚洲一区av | 激情婷婷在线 | 一级成人免费视频 | 国产第一页在线播放 | 正在播放日韩 | 久久精品影视 | 欧美另类sm图片 | 日韩免费一级a毛片在线播放一级 | 久保带人| 久久免费看毛片 | 久久久精品国产免费观看一区二区 | 免费看片网址 | 少妇bbbb搡bbbb搡bbbb | 国产视频 亚洲精品 | 蜜臀久久99静品久久久久久 | 日韩在线观看中文 | 久久久蜜桃 | 日韩久久精品一区二区三区 | 亚洲午夜精品一区二区三区电影院 | 亚洲jizzjizz日本少妇 | 亚洲国产精品影院 | 国产精品24小时在线观看 | 天堂av在线免费 | 91在线视频播放 | 99色精品视频 | 91色影院 | 精品久久久久一区二区国产 | 91片黄在线观 | 偷拍福利视频一区二区三区 | 夜添久久精品亚洲国产精品 | 91最新视频 | 99综合影院在线 | 久久久亚洲精品 | 亚洲人xxx | 悠悠av资源片 | 精品视频 | 欧美日韩一区二区三区在线免费观看 | 中文字幕 影院 | 午夜精品一二区 | 国产精品二区在线 | 亚洲成av人片在线观看 | 午夜视频二区 | 激情久久伊人 | 人人爽夜夜爽 | 天天操夜夜操 | 国产高清av| 免费视频xnxx com | 超碰人人草人人 | 精品亚洲视频在线 | 亚洲国产精品一区二区久久hs | 永久免费毛片 | 久久日本视频 | www.久久免费视频 | 国产性天天综合网 | 国产精品一区二区三区四 | 久久免费国产电影 | 成人黄性视频 | 欧美日韩一区二区在线 | 热久久影视 | 国产午夜三级一区二区三 | a在线v| 成人国产精品久久久 | av在线8| 久久久久久久久综合 | 亚洲激情小视频 | 国产美腿白丝袜足在线av | 操操操操网 | 天天操天天玩 | 精品亚洲午夜久久久久91 | 日日操操 | 欧美亚洲国产日韩 | 日韩中文字幕网站 | 国产精品久久久久久久久久免费 | 国产亚洲成人网 | 欧美欧美 | 色综合天天天天做夜夜夜夜做 | 日韩电影在线观看一区二区 | 97视频播放 | 久久毛片网 | www.国产在线 | 欧美九九九 | 一区二区久久 | 久久精品毛片基地 | 91亚洲精品在线观看 | 黄色电影小说 | 亚洲无人区小视频 | 337p日本欧洲亚洲大胆裸体艺术 | 午夜美女福利 | 人人玩人人弄 | 欧美精品久久久久性色 | 制服丝袜欧美 | 日韩在线精品一区 | 亚洲精品免费观看视频 | 伊人天天综合 | 激情视频在线高清看 | 一本一本久久a久久精品综合妖精 | 中文字幕在线视频免费播放 | 国产视频精品视频 | 丁香婷婷久久久综合精品国产 | 欧美精彩视频在线观看 | 国产一二区在线观看 | 免费人成网 | 一区二区精品久久 | 伊人看片 | 精品久久一区二区 | 成人aaa毛片 | 国产精品婷婷午夜在线观看 | 亚洲日韩精品欧美一区二区 | 国产在线不卡精品 | 国产精品粉嫩 | 亚洲伦理中文字幕 | 国产精品免费一区二区三区在线观看 | 亚洲精品午夜久久久久久久久久久 | 亚洲年轻女教师毛茸茸 | 精品久久国产 | 日韩在线资源 | 美女黄色网在线播放 | 激情av在线播放 | 久草干 | 亚洲国内精品在线 | 日韩综合第一页 | 亚洲伊人成综合网 | 99精品网站| 波多野结衣电影一区 | 免费国产视频 | 日韩sese| 久久久精品小视频 | av电影在线不卡 | 综合网天天 | 91字幕 | 亚洲综合成人在线 | 久久成人免费视频 | 久久九九国产精品 | 色婷久久 | 日韩在线观看三区 | 69xx视频| 精品一区二区免费视频 | 国产精品第三页 | 中文字幕在线看视频 | 国产伦精品一区二区三区四区视频 | 国产精品一区二区精品视频免费看 | 97超视频 | 一区二区亚洲精品 | 成人动态视频 | 一区在线播放 | 欧美日韩有码 | 国产美女无遮挡永久免费 | 国产精品亚洲片在线播放 | 国产一级二级在线观看 | 亚洲美女精品视频 | 国产美腿白丝袜足在线av | 国产成人av网 | 日韩性xxxx | 婷婷久操 | 亚洲激情六月 | 日韩在线免费不卡 | 久久在视频 | 久久免费看av | 天天色天天色天天色 | 亚洲国产一区二区精品专区 | 涩涩在线 | 久久久网 | 久久精选视频 | 日韩精品第一区 | 欧美精品久久人人躁人人爽 | 国产精品一区二区三区四 | 91亚洲国产成人久久精品网站 | 97福利在线 | 久精品在线 | 999视频精品 | 日韩精品免费在线观看视频 | av大全在线看 | 成人亚洲综合 | 国产精品久久久久久久久久三级 | 国产一级h | 国产成人一二片 | 日韩在线看片 | 午夜av免费在线观看 | 天天爱天天 | 亚洲国产影院 | 国产一级淫片免费看 | 日韩高清免费在线观看 | 久在线 | 999久久久久久久久久久 | 国内精品视频久久 | 在线性视频日韩欧美 | 亚洲欧美国产日韩在线观看 | 黄网站色视频免费观看 | 国产精品中文字幕在线播放 | 丝袜av一区 | 在线看的av网站 | 亚洲伊人av | 天天操天天舔天天爽 | 人成免费网站 | 日韩夜夜爽 | 国产99久久久精品 | 免费精品国产va自在自线 | 日韩二区在线 | 色诱亚洲精品久久久久久 | 色综合色综合久久综合频道88 | 欧美 日韩 成人 | 亚洲 欧美 精品 | 毛片基地黄久久久久久天堂 | 麻豆传媒一区二区 | 久久黄色免费观看 | 日韩精品视频免费看 | 伊人六月 | 99欧美视频 | 国产精品久久久免费看 | 亚洲成年片 | 综合成人在线 | 日韩av二区 | 国产精品乱码一区二三区 | 欧美日韩视频在线播放 | 男女拍拍免费视频 | 欧美91精品久久久久国产性生爱 | 久久99热精品这里久久精品 | 草樱av | 97人人模人人爽人人喊网 | 中文字幕最新精品 | 国产精品 日韩精品 | 成人精品电影 | 欧美成人高清 | 天天射天天射天天射 | se婷婷 | 国产精品久久一卡二卡 | 国产香蕉97碰碰久久人人 | 成人福利在线 | 国产精品99蜜臀久久不卡二区 | 国产精品v欧美精品 | av激情五月 | 色5月婷婷| 奇米777777| 日日婷婷夜日日天干 | av蜜桃在线 | 色婷婷av在线| 超碰人人在线 | 久久久久久毛片精品免费不卡 | av免费网站在线观看 | 欧美做受高潮1 | 精品影院 | 在线免费高清一区二区三区 | 九九视频在线观看视频6 | 久久成人综合视频 | 99在线精品视频在线观看 | 日色在线视频 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 嫩草伊人久久精品少妇av | 在线小视频 | 国产一区二区精品 | av国产在线观看 | 成人精品久久久 | 91福利视频免费 | 精品国产精品久久一区免费式 | 97精品在线视频 | 又长又大又黑又粗欧美 | 午夜美女网站 | 亚洲精品91天天久久人人 | 国精产品999国精产品岳 | 97偷拍在线视频 | 91九色porny蝌蚪视频 | 日韩中文字幕在线观看 | 国产二级视频 | 欧美视频二区 | 一区二区三区高清在线观看 | 亚洲国产精品久久久久久 | 在线观看视频一区二区三区 | 欧美日韩中文字幕综合视频 | 精品国产1区二区 | 婷婷av电影| 精品国偷自产在线 | 亚洲精品欧美视频 | 国产成人福利在线观看 | 久草在线在线精品观看 | 国产明星视频三级a三级点| 成人欧美一区二区三区黑人麻豆 | 青青河边草免费直播 | www黄在线 | 久久www免费人成看片高清 | 99精品国产一区二区 | 国产亚洲在线视频 | 久久婷婷久久 | 在线岛国av | 91pony九色丨交换 | 欧美大片在线观看一区 | 成人av在线资源 | 夜夜爽88888免费视频4848 | 99久久久国产精品免费99 | 狠狠色丁香婷婷综合久久片 | 色综合久久精品 | 人人插人人草 | 久久亚洲国产精品 | 免费成人av电影 | 中文字幕乱码电影 | 在线视频观看成人 | av超碰免费在线 | 日韩最新中文字幕 | 久草国产视频 | 国产欧美精品一区二区三区 | 色.www| 久久久久久欧美二区电影网 | 五月婷色| 国产一级免费播放 | 色婷婷综合久久久中文字幕 | 一区二区三区高清不卡 | 91麻豆精品91久久久久同性 | 在线观看精品一区 | 成人黄色免费在线观看 | av在线播放观看 | 日韩在线免费视频 | 成年人黄色免费视频 | 西西444www大胆高清图片 | 国产亚洲视频中文字幕视频 | 午夜视频在线观看一区二区 | 色妞色视频一区二区三区四区 | 亚洲精品在线免费 | 91一区在线观看 | 国产黄色片在线免费观看 | 91激情在线视频 | 色九九在线 | 99精品乱码国产在线观看 | 久久99精品久久久久久秒播蜜臀 | 欧美久久久久久久 | 美女精品国产 | 久久久久国产免费免费 | 激情婷婷色 | 综合网婷婷 | 久久久久久久影院 | 精产嫩模国品一二三区 | 久草在线免费播放 | 欧美午夜久久久 | 伊人视频 | 日韩色爱 | 99在线观看| 亚洲欧洲美洲av | 免费观看久久久 | 日韩国产精品一区 | 亚洲视频在线看 | 在线影院 国内精品 | 青草视频在线 | 国产我不卡 | 久草热视频 | 天堂av观看| 国产麻豆精品一区 | 亚洲年轻女教师毛茸茸 | 日韩电影中文字幕在线观看 | 亚洲精品自拍视频在线观看 | 97在线看 | 国产一级二级在线播放 | 国产激情小视频在线观看 | 国产日韩精品在线 | 国产精品成人一区二区 | 久久看片|