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

歡迎訪問 生活随笔!

生活随笔

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

java

十 Java集合框架(2):Set接口

發布時間:2025/1/21 java 110 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十 Java集合框架(2):Set接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • Set接口和常用方法
    • 基本介紹
    • set接口常用方法
    • set接口的遍歷方式
  • Set實現類--HashSet
    • 基本介紹
    • HashSet底層機制
    • 源碼分析
      • HashSet的add方法
      • HashSet擴容機制
    • 代碼實踐
  • Set實現類--LinkedHashSet
    • 基本介紹
    • 源碼分析
  • Set實現類--TreeSet
    • 基本介紹
    • 源碼分析

課程視頻:https://www.bilibili.com/video/BV1YA411T76k

Set接口和常用方法

基本介紹

  • 無序(添加和取出的順序不一致),沒有索引

  • 不允許重復元素,所以最多包含一個null

  • JDK API中Set接口的實現類有

  • set接口常用方法

    和List接口一樣,set接口也是Collection的子接口,因此,常用方法和Collection接口一樣。

    Modifier and TypeMethod and Description
    booleanadd(E e)如果指定的元素不存在,則將其指定的元素添加(可選操作)。
    booleanaddAll(Collection<? extends E> c)將指定集合中的所有元素添加到此集合(如果尚未存在)(可選操作)。
    voidclear()從此集合中刪除所有元素(可選操作)。
    booleancontains(Object o)如果此集合包含指定的元素,則返回 true 。
    booleancontainsAll(Collection<?> c)返回 true如果此集合包含所有指定集合的元素。
    booleanequals(Object o)將指定的對象與此集合進行比較以實現相等。
    inthashCode()返回此集合的哈希碼值。
    booleanisEmpty()如果此集合不包含元素,則返回 true 。
    Iterator<E>iterator()返回此集合中元素的迭代器。
    booleanremove(Object o)如果存在,則從該集合中刪除指定的元素(可選操作)。
    booleanremoveAll(Collection<?> c)從此集合中刪除指定集合中包含的所有元素(可選操作)。
    booleanretainAll(Collection<?> c)僅保留該集合中包含在指定集合中的元素(可選操作)。
    intsize()返回此集合中的元素數(其基數)。
    default Spliterator<E>spliterator()在此集合中的元素上創建一個 Spliterator 。
    Object[]toArray()返回一個包含此集合中所有元素的數組。
    <T> T[]toArray(T[] a)返回一個包含此集合中所有元素的數組; 返回的數組的運行時類型是指定數組的運行時類型。

    set接口的遍歷方式

    同Collection的遍歷方法一樣,因為set接口是Collection接口的子接口。

  • 可以使用迭代器
  • 增強for
  • 不能使用索引的方式遍歷
  • // 以set接口的實現子類 HashSet舉例 set接口方法 /*1. set接口的實現類(Set接口對象),不能存放重復的元素,可以添加一個null2. set接口對象存放的數據是無序的(即添加的順序和取出的順序不一致)3. 注意:取出的順序雖然不是添加的順序,但是它是固定的。*/ Set set = new HashSet(); set.add("1"); set.add("2"); set.add("3"); set.add("3");//重復 set.add("4"); set.add("100"); set.add(null); set.add(null);//重復添加null System.out.println(set);//[null, 1, 100, 2, 3, 4] //遍歷(兩種方式) //1. 迭代器 System.out.println("====迭代器遍歷"); Iterator iterator = set.iterator(); while (iterator.hasNext()) {Object next = iterator.next();System.out.println(next); } //2. 增強for遍歷, 本質就是迭代器 System.out.println("====增強for遍歷"); for (Object o : set) {System.out.println(o); } //set接口對象,不能通過索引來獲取,無法使用普通for循環遍歷

    Set實現類–HashSet

    基本介紹

  • HashSet 實現了Set接口

  • HashSet 實際上是HashMap(源碼如下)

    public HashSet() {map = new HashMap<>(); }
  • 可以存放null值,但是只能有一個null

  • HashSet不保證元素是有序的,取決于hash值,再確定索引的結果

  • 不能有重復元素/對象

  • //1. HashSet 實際上是HashMap HashSet hashSet = new HashSet(); /* 默認構造器源碼public HashSet() {map = new HashMap<>();}*///2. 可以存放null值,但是只能有一個null hashSet.add(null); hashSet.add(null); System.out.println(hashSet);HashSet set = new HashSet();//1.在執行add方法后,會返回一個boolean值 //2.如果添加成功,返回true,否則返回false //3.可以通過remove指定刪除哪個對象 System.out.println(set.add("Tom")); // true System.out.println(set.add("Mike")); // true System.out.println(set.add("john")); // true System.out.println(set.add("Tom")); // false System.out.println(set.add("Jerry")); //true set.remove("Tom"); System.out.println(set);//[Mike, john, Jerry]set = new HashSet(); //hashSet 不能添加相同的元素/數據 set.add("lucy"); // true set.add("lucy"); // false set.add(new Cat("tom")); //true set.add(new Cat("tom")); //true System.out.println(set);//[Cat{name='tom'}, Cat{name='tom'}, lucy]//經典面試題 System.out.println(set.add(new String("kobe")));//true System.out.println(set.add(new String("kobe")));//false System.out.println(set);//[kobe, Cat{name='tom'}, Cat{name='tom'}, lucy]

    HashSet底層機制

    HashSet 底層是HashMap,HashMap底層是(數組+鏈表+紅黑樹

    相較數組存儲效率高

    代碼實現

    //模擬一個HashSetMap的底層(HashMap的底層結構)//1.創建一個數組,數組的類型是Node[] //2.有些人,直接把Node[]數組稱為表 Node[] table = new Node[16];//3.創建結點 Node john = new Node("john",null); table[2] = john; Node jack = new Node("jack", null); john.next = jack;//將jack節點掛載到 john后 Node rose = new Node("Rose",null); jack.next = rose;//將roes結點掛載到jack后 Node lucy = new Node("lucy", null); table[3] = lucy; System.out.println(table);

    存儲結構

    源碼分析

    HashSet的add方法

  • HashSet 底層是 HashMap
  • 添加一個元素時,先得到hash值 會轉成 -> 索引值,(不是hashcode,是hashcode經過相關運算得到hash值)
  • 找到存儲數據表table,看這個索引位置是否已經存放的有元素
  • 如果沒有,直接加入
  • 如果有,調用equals() 比較, 如果相同,就放棄添加,如果不相同,則添加到最后
  • 在 java8 中,如果一條鏈表的元素個數大于等于TREEIFY_THRESHOLD(默認是8),并且table的大小 >= MIN_TREEIFY_CAPCAITY(默認64),就會進行樹化(紅黑樹)
  • HashSet hashSet = new HashSet();hashSet.add("java"); hashSet.add("php"); hashSet.add("java");System.out.println("haseSet="+hashSet); /* 1. 執行Hashset() public HashSet() {map = new HashMap<>(); } 2. 執行hashSet.add() public boolean add(E e) { //e="java"return map.put(e, PRESENT)==null;//private static final Object PRESENT = new Object(); } 3. 執行put方法 public V put(K key, V value) {//key = "java" , value = PRESENT (靜態)return putVal(hash(key), key, value, false, true); } 4. hash(key)方法,得到key對應的一個”hash值“,但不是hashcode! static final int hash(Object key) {int h;return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);//>>>無符號右移16位 } 5. 執行putVal 核心! final V putVal(int hash, K key, V value, boolean onlyIfAbsent,boolean evict) {Node<K,V>[] tab; Node<K,V> p; int n, i; //定義了輔助變量//table 就是HashMap 的一個數組,類型是Node[]//if語句標識如果當前table是null或者大小為0//第一次擴容,空間大小為16if ((tab = table) == null || (n = tab.length) == 0)n = (tab = resize()).length;//resize():擴容,第一次生成Node[16],數組擴展的閾值為0.75*16=12//(1)根據key,得到hash去計算該key應該存放到table表的哪個索引位置//并把這個位置的對象,賦給p//(2)判斷這個p是否為空//(2.1)如果p為null//如果p為null,標識還沒有存放元素,就創建一個Node(key=”java“,value=PRESENT)//就放在該位置tab[i] = newNode(hash, key, value, null);if ((p = tab[i = (n - 1) & hash]) == null)tab[i] = newNode(hash, key, value, null);else {//開發技巧:在需要輔助變量或者局部變量的時候再創建//2.2如果p不為nullNode<K,V> e; K k;//2.2.1 假如數組位置的元素與key(相同)//如果當前索引位置對應的鏈表的第一個元素和準備添加的key的hash值一樣//并且滿足 (準備加入的key和p指向的Node結點的key相同) 或(key動態綁定的equals()方法為真)if (p.hash == hash &&((k = p.key) == key || (key != null && key.equals(k))))e = p;//2.2.2 判斷p是不是紅黑樹結點// 調用putTreeVal方法添加else if (p instanceof TreeNode)e = ((TreeNode<K,V>)p).putTreeVal(this, tab, hash, key, value);else {//2.2.3 假如是鏈表// 順次比較鏈表的每一個元素是否相同(和2.2.1比較方法相同),都不相同加在最后一個位置,相同就break// 注意在把元素添加到鏈表后,立即判斷,該鏈表是否到達8個結點,就調用treeifyBin對鏈表進行樹化(轉成紅黑樹)// 注意,在轉成紅黑樹時,要進行判斷,判斷條件:tab == null || (n = tab.length) < MIN_TREEIFY_CAPACITY(默認64)//上述條件成立,先table擴容,否則不成立才轉成紅黑樹for (int binCount = 0; ; ++binCount) {if ((e = p.next) == null) {//比較到最后一個位置p.next = newNode(hash, key, value, null);if (binCount >= TREEIFY_THRESHOLD - 1) // -1 for 1sttreeifyBin(tab, hash);break;}if (e.hash == hash &&((k = e.key) == key || (key != null && key.equals(k))))break;p = e;}}//3 判斷是否存在if (e != null) { // existing mapping for keyV oldValue = e.value;if (!onlyIfAbsent || oldValue == null)e.value = value;afterNodeAccess(e);return oldValue;}}++modCount;//size 就是我們每加入一個結點Node(k,v,h,next),size++,不論是加在數組還是鏈表if (++size > threshold)resize();//擴容afterNodeInsertion(evict);//空方法,給HashMap子類去實現return null; }*/

    HashSet擴容機制

  • HashSet 底層是HashMap,第一次添加時,table數組擴容到16,臨界值(threshold)是 16 * 加載因子(loadFactor)是0.75 = 12
  • 如果table數組使用到了臨界值12,就會擴容到 16 * 2 = 32,新的臨界值就是 32*0.75 = 24,依次類推
  • 在Java8中,如果一條鏈表的元素個數到 TREEIFY_THRESHOLD(默認是8),并且table的大小 >= MIN_TREEIFY_CAPACITY(默認64),就會進行樹化(紅黑樹),否則仍然采用數組擴容機制
  • 注意

    • 每添加一個元素(包括在table表,與表中鏈表)即添加一個節點,會執行一次 ++size,當size > threshold 時就會執行擴容。
    • table表擴容并不是表的16個大小被添加完才執行,當所有元素的個數大于臨界值時就會執行擴容。

    具體可以查看博客 https://blog.csdn.net/weixin_39667787/article/details/86678215

    代碼實踐

    題目描述:

    定義一個Eeployee類,該類包括:private成員屬性name,age

  • 創建3個Employee對象放入 HashSet中
  • 當 name和age的值相同時,認為是相同員工,不能添加到HashSet集合中
  • 關鍵:重寫hashCode()與equals()方法

    快捷鍵:Alt+Insert => equals() and hashCode() => 選擇相應的參數

    public class Demo17_HashSetExercise {public static void main(String[] args) {HashSet hashSet = new HashSet();hashSet.add(new Employee("jack", 18));hashSet.add(new Employee("mike", 28));hashSet.add(new Employee("jack", 18));System.out.println(hashSet);//[Employee{name='mike', age=28}, Employee{name='jack', age=18}]} } class Employee {String name;int age;@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Employee employee = (Employee) o;return age == employee.age && Objects.equals(name, employee.name);}@Overridepublic int hashCode() {return Objects.hash(name, age);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Employee(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Employee{" +"name='" + name + '\'' +", age=" + age +'}';} }

    Set實現類–LinkedHashSet

    基本介紹

    • LinkedHashSet 是 HashSet的子類
    • LinkedHashSet 底層是一個LinkedHashMap,底層維護了一個 數組 + 雙向鏈表
    • LinkedHashSet 根據元素的 hashCode 值來決定元素的存儲位置,同時使用鏈表維護元素的次序,這使得元素看起來是以插入順序保存得。
    • LinkedHashSet 不允許添加重復元素

    說明

  • 在LinkedHashSet中維護了一個hash表和雙向鏈表(LinkedHashSet 有 head和tail)
  • 每一個節點有 before和after屬性,這樣可以形成雙向鏈表
  • 在添加一個元素時,先求hash值,在求索引,確定該元素在table的位置,然后將添加的元素加入到雙向鏈表(如果已經存在,不添加【原則和hashset一樣】)
  • 這樣遍歷LinkedHashSet 也能確保插入順序和遍歷順序一致
  • 源碼分析

    public class Demo19_LinkedHashSet_Source {public static void main(String[] args) {LinkedHashSet set = new LinkedHashSet();set.add(new String("AA"));set.add(456);set.add(456);set.add(new Customer("劉",1001));set.add(123);set.add("kobe");for (int i = 0; i < 100; i++) {set.add(new Customer("kobe",24));}//也會樹化 parent、left、rightSystem.out.println(set);//1. LinkedHashSet 加入順序和遍歷順序一致//2. LinkedHashSet 底層是一個LinkedHashMap(是hashMap的子類)//3. LinkedHashSet 底層結構(數組table+雙向列表)//4. 添加第一次時,直接將數組table擴容到16,存放的結點類型 LinkedHashMap$Entry//5. 數組是HashMap$Node[] , 存放的元素/數據是 LinkedHashMap$Entry 類型/*//繼承關系是在內部類完成 , 都是靜態內部類static class Entry<K,V> extends HashMap.Node<K,V> {Entry<K,V> before, after;Entry(int hash, K key, V value, Node<K,V> next) {super(hash, key, value, next);}}*/} } class Customer{private String name;private int no;public Customer(String name, int no) {this.name = name;this.no = no;}@Overridepublic String toString() {return "Customer{" +"name='" + name + '\'' +", no=" + no +'}';}@Overridepublic int hashCode() {return 1;} }

    樹化后的結點結構

    Set實現類–TreeSet

    基本介紹

    • 不允許添加重復元素,不允許添加 null,不允許添加
    • 無序(沒有按照輸入順序進行輸出)
    • 遍歷結果有順序
    • 底層為排序二叉樹(紅黑樹),且采用中序遍歷得到結果 (左節點,根節點,右節點)

    源碼分析

    public class Demo_TreeSet {public static void main(String[] args) {//TreeSet treeSet = new TreeSet();//使用匿名內部類實現Comparator接口,并重寫compare方法,指定排序方法TreeSet treeSet = new TreeSet(new Comparator() {@Overridepublic int compare(Object o1, Object o2) {return ((String)o1).length() - ((String)o2).length();}});//添加數據treeSet.add("jack");treeSet.add("tom");treeSet.add("sp");treeSet.add("abc");//tom 和 abc 長度相等,key相等,添加失敗System.out.println(treeSet);//[sp, tom, jack]//1.當我們使用無參構造器時,創建TreeSet時,底層默認創建TreeMap/*public TreeSet() {this(new TreeMap<E,Object>());}*///TreeMap 如果使用默認構造函數,要求key是實現了Comparable接口的,并且使用key的compareTo方法比較,//也就是說仍然按照key排序,如果key沒有實現Comparable方法就會報錯/*String類實現了Comparable接口,重寫了compareTo方法:按升序排序,首字母先比較,相等再用第二個字母,以此類推public final class String implements java.io.Serializable, Comparable<String>, CharSequence {}*///2.上面的的代碼實現了添加元素按照字符串長度來排序//3./*public V put(K key, V value) {Entry<K,V> t = root;if (t == null) {compare(key, key); // type (and possibly null) checkroot = new Entry<>(key, value, null);size = 1;modCount++;return null;}int cmp;Entry<K,V> parent;// split comparator and comparable pathsComparator<? super K> cpr = comparator;//傳入的比較器if (cpr != null) {do {parent = t;cmp = cpr.compare(key, t.key);//動態綁定到我們的comparatorif (cmp < 0)t = t.left;else if (cmp > 0)t = t.right;elsereturn t.setValue(value);//如果比較器比較結果相同,更改value,不更改key//TreeSet的value是類,private static final Object PRESENT = new Object();} while (t != null);}else {//如果使用默認構造函數,即沒有比較器對象//要求key是實現了Comparable接口的,并且使用key的compareTo方法比較,if (key == null)//key不能為空throw new NullPointerException();@SuppressWarnings("unchecked")Comparable<? super K> k = (Comparable<? super K>) key;//要求key是實現了Comparable接口的do {parent = t;cmp = k.compareTo(t.key);//使用key的compareTo方法比較if (cmp < 0)t = t.left;else if (cmp > 0)t = t.right;elsereturn t.setValue(value);} while (t != null);}Entry<K,V> e = new Entry<>(key, value, parent);if (cmp < 0)parent.left = e;elseparent.right = e;fixAfterInsertion(e);//加入后紅黑樹旋轉size++;modCount++;return null;}*/treeSet = new TreeSet();treeSet.add(new C(1));treeSet.add(new C(2));treeSet.add(new C(1));System.out.println(treeSet);} } class C implements Comparable<C>{int num;public C(int num) {this.num = num;}public int compareTo( C c) {return this.num - c.num;}@Overridepublic String toString() {return "C{" +"num=" + num +'}';} }

    總結

    以上是生活随笔為你收集整理的十 Java集合框架(2):Set接口的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    日本xxxx裸体xxxx17 | 探花视频免费观看 | 国产在线精品观看 | 亚洲一区美女视频在线观看免费 | 黄色毛片视频免费 | 五月激情五月激情 | 国产小视频免费在线观看 | 国产免费小视频 | 中国一 片免费观看 | 日本黄色免费电影网站 | 欧美精品久久久久久久久久丰满 | 欧美老人xxxx18 | 亚洲免费av在线播放 | 成年人国产视频 | 久久草精品| 久久久综合 | 日本爱爱免费 | 日本精品久久久久久 | 中文字幕一区二区三区四区久久 | 国产毛片久久久 | 国产精品 国内视频 | 国产第一页福利影院 | www.狠狠 | 亚洲一级理论片 | 五月天六月丁香 | 日本中文乱码卡一卡二新区 | 91免费在线看片 | 黄色动态图xx | 亚洲欧洲精品一区二区精品久久久 | 久久国内精品99久久6app | 精品国产一区二区久久 | 91精品久久久久久久91蜜桃 | 伊人伊成久久人综合网站 | 久热电影 | 国产剧情一区二区在线观看 | 91桃色免费观看 | 在线视频一二区 | 国产婷婷| 日韩一区二区久久 | 99热最新网址 | 五月天久久久久久 | 色婷婷五 | 欧美va日韩va | 麻豆一区在线观看 | 欧美国产视频在线 | 97久久精品午夜一区二区 | 久久精品久久久久久久 | 久久伦理影院 | 视频一区二区在线观看 | 永久中文字幕 | 看av免费网站 | 成人免费网视频 | 国产精品色视频 | 操操操日日日干干干 | 国产精品99久久久 | 婷婷久久网 | 在线成人小视频 | 国产成人精品久久久久蜜臀 | 在线观看亚洲精品视频 | 99国内精品久久久久久久 | 国产在线精品一区二区三区 | 日本精品中文字幕在线观看 | www日韩在线观看 | 最新精品视频在线 | 91最新地址永久入口 | 国产剧在线观看片 | 国产在线观看a | 超碰在线91 | 99热国产在线观看 | 碰超在线观看 | 久久久高清免费视频 | 人人揉人人揉人人揉人人揉97 | 91亚洲永久精品 | 久久精品国产免费看久久精品 | 久草精品在线播放 | 日韩欧美国产激情在线播放 | 免费色av | 国产精品毛片一区视频播 | av免费在线观| 亚洲综合在线一区二区三区 | 在线有码中文 | 五月婷婷综合激情网 | 99一区二区三区 | 免费观看91 | 亚洲精品一区二区三区高潮 | avav99| 免费在线激情视频 | 国产成人福利在线 | 九九免费在线观看视频 | 在线免费观看黄色 | 中文字幕在线观看第一页 | 久久国产热视频 | 在线免费观看一区二区三区 | 国产精品成人在线 | 天天操天天摸天天爽 | 日韩精品一区二区三区视频播放 | 久草在线观 | 日韩欧美视频一区二区三区 | 婷婷丁香自拍 | 国产精品青草综合久久久久99 | 91在线免费公开视频 | 国产精品美女久久久久久久久 | 在线观看亚洲专区 | 精品亚洲视频在线 | 国产麻豆视频网站 | 久久人人添人人爽添人人88v | 久久免费在线观看视频 | 在线 高清 中文字幕 | 久久草视频| 欧美国产一区在线 | 91亚洲精品久久久蜜桃借种 | 日韩视频1区 | www.黄色片网站 | 最新黄色av网址 | 国产淫片 | 欧美日韩调教 | 日韩精品免费一区二区三区 | 久久精品视频2 | 色网站在线观看 | 久久久久 免费视频 | 香蕉手机在线 | 免费看91的网站 | 一区二区三区免费网站 | 久久精品黄 | 日韩精品中文字幕一区二区 | 在线视频精品 | 91精品国产91热久久久做人人 | 日日激情 | 亚洲人成综合 | 欧美日韩在线电影 | 夜夜天天干 | 日日干天天 | 午夜视频在线观看网站 | 亚洲综合小说电影qvod | 在线免费三级 | 四虎永久视频 | 午夜视频日本 | 久久精品欧美日韩精品 | 欧美日韩亚洲在线 | 在线免费中文字幕 | 国产精品中文字幕在线播放 | 中文在线字幕免费观看 | 99在线精品观看 | 韩国av一区 | 国产视频一区在线播放 | 久久毛片视频 | 91秒拍国产福利一区 | 久久精品亚洲国产 | 伊人春色电影网 | 欧美成人aa | 九九国产精品视频 | 国产精品一区二区麻豆 | 精品久久久久久久 | 国产精品video爽爽爽爽 | 精品亚洲在线 | 黄色成人av在线 | av一级免费 | 精品久久视频 | 成人三级网站在线观看 | 91免费高清视频 | 韩日精品在线 | 在线观看www视频 | 婷婷精品国产一区二区三区日韩 | 亚洲精品久 | 午夜久久福利 | 成年人黄色大全 | 美女av在线免费 | 丁香婷婷在线观看 | 久草久视频 | 成人在线免费小视频 | 国产精品9999久久久久仙踪林 | 欧美a级免费视频 | 婷婷五月在线视频 | 亚洲天堂网视频在线观看 | 91在线中文字幕 | 久久国产亚洲视频 | 中文字幕在线国产精品 | 国产美女免费视频 | 国产精品国产三级国产aⅴ入口 | 99热精品视 | 97视频播放 | 国产在线免费 | 91x色| 久久精品这里热有精品 | 久久97久久97精品免视看 | 国产色拍拍拍拍在线精品 | 香蕉视频国产在线 | 免费看黄色91 | 婷婷在线免费视频 | 激情偷乱人伦小说视频在线观看 | 国产免费黄视频在线观看 | 狠狠色丁香久久婷婷综合五月 | 美女视频黄色免费 | 亚洲精品一区二区三区在线观看 | 99久久精品国产免费看不卡 | 国产亚洲午夜高清国产拍精品 | 一级黄色片在线免费观看 | 日韩欧美视频在线免费观看 | 国内精品久久久久久久影视简单 | 亚洲国产精品500在线观看 | www.xxxx变态.com | 国产在线播放一区二区三区 | 久久久久久久久久久影视 | 日韩xxxx视频 | 欧美大片大全 | 国产91对白在线播 | 青青视频一区 | 国产麻豆精品95视频 | 国产成人精品电影久久久 | 开心色插| 色婷婷国产精品 | 久久精品国产精品 | 操操综合网 | 91少妇精拍在线播放 | 免费观看国产精品 | 98涩涩国产露脸精品国产网 | 91完整版观看 | 亚洲精品乱码久久久久久久久久 | 久久精品国产一区 | 国产一区免费在线观看 | 欧美成人手机版 | 999视频在线播放 | 98精品国产自产在线观看 | 成人免费看视频 | 五月天婷婷丁香花 | 九九九九热精品免费视频点播观看 | 国产午夜三级一区二区三桃花影视 | 日韩在线观看你懂得 | 日韩免费在线观看 | www.在线观看视频 | 99视频精品在线 | 91精品国自产在线偷拍蜜桃 | 黄色三级在线看 | 久久免费成人网 | 天天干天天草天天爽 | 在线免费观看视频 | 狠狠色丁香婷婷综合视频 | 一区二区伦理电影 | 永久精品视频 | 在线v片免费观看视频 | 国产xxxx性hd极品 | 在线视频观看国产 | 天天亚洲综合 | 97成人啪啪网| 国产精品女视频 | 久久久资源 | 91资源在线 | 久久论理 | 丁香六月在线观看 | 午夜影院一级 | 视频一区在线免费观看 | 亚洲精品久久久久中文字幕二区 | 麻豆精品传媒视频 | 欧美精品九九 | 国产麻豆电影 | 一区二区成人国产精品 | 狠狠地操| 色诱亚洲精品久久久久久 | 特级毛片在线观看 | 久久精品视频播放 | 日韩一区二区三区免费视频 | 国产黄色资源 | 五月婷婷综合在线 | 婷婷av综合 | 在线观看免费色 | 国产一区二区在线免费 | 久久小视频 | 午夜12点 | av在线在线 | 最近在线中文字幕 | 中文字幕在线播出 | 最近最新mv字幕免费观看 | 一本到在线 | 国产精品嫩草影院123 | 日色在线视频 | h视频日本| 日韩av视屏在线观看 | 欧美日韩免费在线观看视频 | 午夜黄网 | 91爱爱网址 | 视频一区二区免费 | 精品主播网红福利资源观看 | 欧美国产日韩在线观看 | 亚洲一区日韩 | 麻豆成人网 | 亚洲一区二区视频在线 | 97人人超| 亚洲精品视频在线观看免费视频 | 波多野结衣电影一区 | 亚洲黄色小说网址 | www.亚洲视频 | 久久99国产精品视频 | 国产精品第三页 | 久久免费毛片 | 日韩欧美在线国产 | 夜色资源网| 91成人精品| 激情视频在线观看网址 | www.久久久.cum| 波多野结衣日韩 | 欧美性极品xxxx做受 | 久久午夜羞羞影院 | 2022久久国产露脸精品国产 | 成人午夜电影网站 | 色无五月| 在线免费亚洲 | 九九色在线观看 | 日韩精品不卡 | 婷婷综合激情 | 国产综合小视频 | 日韩视频中文字幕在线观看 | 天堂av在线网址 | 欧美精品乱码久久久久久按摩 | 亚洲精品日韩一区二区电影 | 国产视频一区在线 | 成人aaa毛片 | 亚洲精品免费在线观看 | 国产精品一二 | 成年人免费av网站 | 在线观看免费成人 | 亚洲综合爱| www.狠狠操 | 人人干干人人 | 日韩最新理论电影 | 天天草天天插 | 丁香六月欧美 | 黄色一级动作片 | 免费福利视频导航 | av日韩在线网站 | 亚洲欧洲在线视频 | 在线观看中文 | 免费看的黄色片 | 国产精品女同一区二区三区久久夜 | 黄色软件视频大全免费下载 | 欧美一二三区在线播放 | 亚洲午夜av久久乱码 | 蜜臀av夜夜澡人人爽人人 | 日韩精品一区二区三区免费观看视频 | 人人爱爱| 这里只有精品视频在线 | 亚洲人人射 | 人人澡超碰碰97碰碰碰软件 | 91精品国产99久久久久久红楼 | 国产高清不卡av | 中文在线a在线 | 国产视频色 | 999久久久久久久久久久 | 日日精品| 涩涩网站在线播放 | 国产综合香蕉五月婷在线 | 久久免费视频6 | 波多野结衣日韩 | 国产精品不卡在线 | 亚洲性xxxx | 91资源在线播放 | 色婷婷激情综合 | 天天操天天曰 | 最新的av网站 | 久久99视频 | 97天堂 | 99精品视频播放 | 午夜影院一级片 | 国产中文在线字幕 | 九九激情视频 | 综合铜03 | 激情在线网站 | 国产一性一爱一乱一交 | 国产探花视频在线播放 | 天天干夜夜爽 | 少妇搡bbbb搡bbb搡69 | 国产高清不卡在线 | 久久免费电影网 | 久久精品国产成人精品 | 最近av在线 | 天天干人人 | 婷婷去俺也去六月色 | 久久黄色a级片 | 18国产精品福利片久久婷 | 西西大胆免费视频 | 一级免费看 | 五月婷婷一区二区三区 | 中文字幕一区二区三 | 精品视频免费观看 | 国产亚洲欧美日韩高清 | 天天操天天操天天操天天操 | 91香蕉视频黄色 | 久久国色夜色精品国产 | 一区二区 不卡 | 激情婷婷av | 国产精品99久久久久久武松影视 | 91超碰在线播放 | 99精品视频在线免费观看 | 久草视频观看 | 又大又硬又黄又爽视频在线观看 | 国产精品不卡在线播放 | 欧美国产日韩一区二区三区 | 91香蕉视频 | 国产h片在线观看 | 日韩久久精品一区二区 | 99视频在线观看免费 | 香蕉视频18 | 色偷偷网站视频 | 亚洲精品在线视频网站 | 国产成人精品国内自产拍免费看 | 欧美日韩一区二区三区视频 | 欧美俄罗斯性视频 | 久久伊人爱 | 久久久久久蜜av免费网站 | 91女人18片女毛片60分钟 | 国产破处在线视频 | 亚洲,播放 | 黄色亚洲大片免费在线观看 | 国产精品黄色在线观看 | 亚洲区色| 激情欧美在线观看 | 欧美黄色成人 | 免费看亚洲毛片 | 欧美日韩亚洲第一 | 久久九九精品久久 | 日本中文字幕在线免费观看 | 国产精品不卡av | 成人免费视频观看 | 国产成人av| 91精品国产自产91精品 | 精品亚洲男同gayvideo网站 | 五月天com | 五月综合色婷婷 | 亚洲国产一区在线观看 | 亚洲综合在线五月天 | 天天天天天天干 | 十八岁免进欧美 | av片一区二区 | 日韩免费播放 | 成年人视频在线观看免费 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 人人玩人人添人人 | 久久久久麻豆v国产 | 69精品人人人人 | 欧美成a人片在线观看久 | 粉嫩一区二区三区粉嫩91 | av官网在线 | 色综合久久88色综合天天6 | 国产又粗又长又硬免费视频 | 色小说av| 国产视频亚洲视频 | 成人亚洲网 | 国产成在线观看免费视频 | 久久精品一区二区三区视频 | 免费激情在线电影 | 五月黄色 | 欧美国产日韩一区二区三区 | 韩国一区二区三区视频 | 在线播放精品一区二区三区 | 午夜视频一区二区三区 | 亚洲精品黄网站 | 亚洲精品国久久99热 | 一本色道久久综合亚洲二区三区 | 欧美精品久久久久久久久久 | 中文字幕在线免费 | 九九久久精品视频 | 久久久国产影视 | 久九视频 | 亚洲精品午夜一区人人爽 | 91精品久久久久 | 91在线精品观看 | 国产九九在线 | 久久无码av一区二区三区电影网 | 精品在线视频观看 | 国产精品久久伊人 | 国产剧情一区在线 | 天天干人人 | 亚洲一区二区黄色 | 91精品视频免费观看 | 久久久国产99久久国产一 | 欧美日韩国产区 | 久久久精品二区 | 亚洲综合视频在线 | 欧美久久久| 久久免费精品一区二区三区 | 五月婷婷色丁香 | 蜜臀av性久久久久av蜜臀三区 | 久久影视一区 | 久久久精品国产免费观看同学 | 免费视频一区二区 | 五月天丁香综合 | 天天射天天舔天天干 | 天天看天天操 | 视频在线一区二区三区 | 丁香婷婷亚洲 | av丝袜在线 | 亚洲狠狠丁香婷婷综合久久久 | 涩涩伊人 | 人人草在线视频 | 久操视频在线播放 | 亚洲激情五月 | 日本激情视频中文字幕 | 日韩免费播放 | 99热在线网站 | 亚洲一区 av | 97国产在线观看 | 黄色大全免费观看 | 欧美日韩视频一区二区三区 | av在线最新| 丝袜制服天堂 | 天天超碰 | 免费看一级特黄a大片 | 日韩电影一区二区在线观看 | 九九免费精品视频 | 国产理论一区二区三区 | 久草网免费 | 欧美日韩视频一区二区 | 一区二区三区 中文字幕 | 欧美日韩免费在线观看视频 | 成人欧美一区二区三区在线观看 | 久久久官网 | 国产日产在线观看 | 伊人五月天.com | 日韩久久精品一区二区三区下载 | 综合色在线观看 | 西西大胆免费视频 | 亚洲精选在线 | 国产大陆亚洲精品国产 | 国产96在线观看 | 久久久久久免费毛片精品 | 91视频免费视频 | 一级c片| 97视频在线播放 | 欧美成人一二区 | 久久综合综合久久综合 | 午夜影院一级片 | 婷婷丁香视频 | 日日草视频 | 久久久天堂 | 久久久久久久久毛片精品 | 亚洲资源在线观看 | 亚洲精品美女在线观看播放 | 久久国产高清 | 免费看三级网站 | 国内亚洲精品 | 97视频免费 | 国产成人久久精品 | 久久精品欧美日韩精品 | 久久最新视频 | 中文字幕在线精品 | 最近中文字幕免费av | 国产成人一区二区三区免费看 | 日韩精品一区二区三区高清免费 | 精品一区二区久久久久久久网站 | 欧美最新大片在线看 | 亚洲在线不卡 | 日日操网站 | 久久久精品国产免费观看一区二区 | 国产精品99久久久久久久久 | 亚洲国产成人高清精品 | 99久久精品免费视频 | a视频在线 | 插插插色综合 | 久久精品国产久精国产 | h动漫中文字幕 | 免费日韩 | 久久在线看| 免费在线成人av | 国产视频精品免费 | 国产亚洲成人网 | 久章草在线观看 | 日韩免费在线观看 | 99久久精品免费看 | 综合影视 | 久久有精品 | 一二三区高清 | 综合婷婷丁香 | 中文字幕在线观看网站 | 久久精品国产一区二区电影 | 欧美一级免费黄色片 | www.超碰 | 国产午夜精品福利视频 | 激情视频免费在线观看 | 欧美在线视频免费 | 国产黄色高清 | 国产麻豆精品免费视频 | 日韩a在线播放 | 国模视频一区二区三区 | 色婷婷激情电影 | 久草在线99 | 日韩高清片 | 色婷婷av在线 | 在线视频婷婷 | 操操综合 | 在线免费三级 | 亚洲成人第一区 | 日韩在线视频免费看 | 久久成人国产精品 | 国产精品久久久久久久久久不蜜月 | 国产黄色美女 | 天天干天天操天天操 | 亚洲三级毛片 | 日本精品中文字幕在线观看 | 久久久久久久影院 | 成人在线视频免费看 | 天天干夜夜夜操天 | 综合五月| 亚洲 欧美 国产 va在线影院 | 天天操操操操操操 | 久久精品视频一 | 亚洲高清激情 | 久久久五月天 | 麻豆视频免费版 | 91av资源在线 | 成人黄视频 | 中文字幕在线免费观看 | 成人久久免费视频 | 国产精品一区二区免费 | 99九九热只有国产精品 | 一本一道久久a久久精品 | av成人免费在线观看 | 婷婷五月情 | 天天爽夜夜爽精品视频婷婷 | 97看片| 国产一级性生活 | 精品久久五月天 | 日韩一区二区三区高清免费看看 | 国产精品久久久久毛片大屁完整版 | 久久精品韩国 | 久草视频视频在线播放 | 96久久精品 | 日韩免费在线观看视频 | 在线电影av| 婷婷五综合 | 久久99久久久久久 | 日韩午夜电影 | 国产最新在线 | 免费在线观看成人av | 97超级碰碰碰碰久久久久 | 五月天中文字幕 | 国产高清不卡一区二区三区 | 日韩在线影视 | 99久久久久国产精品免费 | 久久精品综合一区 | 亚洲黄色软件 | 国产精品理论片 | 美女久久网站 | 久久国产精品一区二区三区四区 | 中文字幕日本在线 | 国产在线精品二区 | 91精品一区在线观看 | 激情电影影院 | 日韩免费网站 | 亚洲久草在线视频 | 精品国产精品国产偷麻豆 | 国产一区二区三区四区在线 | 欧美综合色 | 五月综合| 日免费视频 | 免费看的黄色录像 | 国产亚洲永久域名 | 黄色大片日本免费大片 | 久久久久久久久久久免费av | 日本韩国欧美在线观看 | 手机看片福利 | 网址你懂的在线观看 | 四虎成人免费观看 | 天天操天天怕 | 日韩av在线免费播放 | 精品久久久久久综合 | 久草视频在线资源 | 91热这里只有精品 | 国产日女人 | www.夜夜操 | 人人澡人人添人人爽一区二区 | 综合色综合色 | 国产在线看 | 在线一二区 | 激情偷乱人伦小说视频在线观看 | 日韩美av在线 | 麻豆视频免费入口 | 人人插超碰 | 美女视频久久 | 国产精品久久三 | 国产精品99在线观看 | 黄色在线小网站 | 日韩高清不卡一区二区三区 | 丁香六月激情婷婷 | 日韩欧美高清视频在线观看 | 九九九在线观看 | 久久久国产精品免费 | 国产一二区视频 | 久久呀 | 亚洲精品在线视频网站 | 精品在线观看一区二区三区 | 日韩字幕在线观看 | 99国产精品一区二区 | 精品一区二区在线播放 | 国产无遮挡又黄又爽馒头漫画 | 日韩精品一卡 | 99视频网站 | av综合站 | 国产综合香蕉五月婷在线 | 99视频久 | 综合婷婷丁香 | 欧美一区视频 | 亚洲成av人电影 | 欧美影片| 97超级碰碰 | 二区三区视频 | 中文字幕在线观看完整版电影 | 欧美性生活一级片 | 国产成人福利在线 | 91免费网| 黄色软件视频大全免费下载 | 免费视频91 | 天天碰天天操视频 | 久久成人国产精品免费软件 | 在线免费观看视频你懂的 | 亚洲欧美久久 | 91漂亮少妇露脸在线播放 | 国产伦理久久 | 精品国产免费av | 亚洲精欧美一区二区精品 | 丁香五婷| 九九热免费视频在线观看 | 在线观看日韩国产 | 91精品少妇偷拍99 | av在线亚洲天堂 | 在线免费观看视频一区 | 97狠狠干 | 亚洲国产高清在线观看视频 | 2021国产精品 | 欧美成人黄色 | 一区二区电影在线观看 | 亚洲成人av片在线观看 | 日韩特级黄色片 | 综合网欧美 | 一区二区三区在线观看免费视频 | av中文在线观看 | 香蕉网在线播放 | 91桃色国产在线播放 | 亚洲欧美少妇 | 久久黄色小说视频 | 久爱精品在线 | 色资源中文字幕 | 国产精品一区二区久久久 | 中文字幕视频播放 | 99情趣网视频| 激情丁香在线 | 毛片a级片 | 久久免费99精品久久久久久 | 狠狠操电影网 | 国产精品一区二区久久精品爱涩 | 又污又黄的网站 | 在线国产福利 | 五月天堂色 | 91精品国产自产老师啪 | 国产精品永久在线观看 | 日本中文字幕网址 | 国产超碰97 | 99久久综合狠狠综合久久 | 夜夜干夜夜 | 久草在线免费看视频 | 狠狠伊人| 免费手机黄色网址 | 精品一区 精品二区 | 波多野结衣电影一区二区三区 | 99 国产精品 | 国产一区久久久 | 中文字幕在线观看播放 | 韩国av免费| 日韩在线视频看看 | 人人狠狠综合久久亚洲婷 | 日韩电影在线观看一区二区 | 国产乱对白刺激视频在线观看女王 | 91看片麻豆| 国产成人精品一区二区在线 | 色综合久 | 伊人天堂av | 97夜夜澡人人爽人人免费 | 99视频久久| 日韩二区三区在线观看 | 在线不卡a | 九九99视频 | 在线欧美中文字幕 | 国产亚洲视频在线观看 | 国内精品一区二区 | 日韩一区在线播放 | 精品国产一二三 | 成年人免费看片网站 | 国产精品视频内 | 国产二级视频 | 免费十分钟 | 精品在线不卡 | 日本中文字幕免费观看 | 久久免费高清视频 | 欧美日韩在线观看一区 | 天天色宗合 | 一区二区三区播放 | 免费看污黄网站 | 日日干视频 | 日本精品视频一区 | 经典三级一区 | 国产精品国产自产拍高清av | 欧美一区二区三区在线看 | 国产亚洲精品久久久久久 | 嫩模bbw搡bbbb搡bbbb | 91看片淫黄大片在线播放 | 在线 影视 一区 | 亚洲国产精品资源 | 国产另类av| 在线观看视频福利 | 国产国产人免费人成免费视频 | 久久久久久片 | 黄色毛片在线 | 丁香九月激情 | 婷婷丁香在线 | 91精品国自产在线观看 | 亚洲欧美日韩国产精品一区午夜 | 狠狠的操狠狠的干 | 日韩欧美xx| 九九热1 | 欧美 日韩 国产 成人 在线 | 欧美黑吊大战白妞欧美 | 欧美激情综合五月色丁香 | 视频三区| 国产成人精品综合久久久 | 日韩精品中文字幕一区二区 | 国产精品免费看久久久8精臀av | 久久久精品国产免费观看同学 | 美女视频国产 | 91视频免费播放 | av在线电影网站 | 国产三级香港三韩国三级 | 丁香花在线视频观看免费 | 欧美日韩不卡一区二区 | 国产视频久久久 | .精品久久久麻豆国产精品 亚洲va欧美 | 日韩色在线观看 | 在线免费黄色av | 成人免费91 | 免费看三级 | 久久成人国产精品免费软件 | 欧美一级久久 | 国产日产亚洲精华av | 久久毛片网站 | 久久人人看 | 国产欧美日韩精品一区二区免费 | 国产一区二区午夜 | 日韩美女高潮 | 色在线视频 | 成年一级片 | 国产精品黑丝在线观看 | 久久久久久久久久久久久久电影 | 午夜精品一区二区三区可下载 | 在线视频一区观看 | 久久九九免费视频 | 久久久精品国产免费观看同学 | 国产香蕉97碰碰碰视频在线观看 | 欧美激情xxxx | 国产精品高清免费在线观看 | 69精品视频在线观看 | 91看片淫黄大片在线播放 | 91高清不卡 | 深爱激情久久 | 日韩网站免费观看 | 久久久精品国产一区二区电影四季 | 天天色天天操综合 | 在线观看色视频 | 国产九九九视频 | 国产精品福利午夜在线观看 | 婷婷久月 | 国产群p视频 | 一级黄毛片 | 玖玖玖国产精品 | 亚洲欧美日韩精品一区二区 | 丝袜美腿一区 | 国产精品一区二区电影 | 免费韩国av | 麻豆91精品 | 久久999精品 | 国产成人精品国内自产拍免费看 | 久久久香蕉视频 | 国产中文字幕视频 | 激情综合色播五月 | 韩国在线视频一区 | 九九热av| 国产a网站 | 在线观看色网 | 亚洲国产精品500在线观看 | 狠狠色丁香 | 中文字幕欧美日韩va免费视频 | 91爱爱免费观看 | 91成人免费视频 | www.婷婷色 | 最新国产精品久久精品 | 免费在线观看成年人视频 | 一区中文字幕在线观看 | 国产精品夜夜夜一区二区三区尤 | 久久人人爽人人片 | 亚洲激情在线播放 | 日本成人a | 操操色 | 成人在线观看日韩 | 91精品视频免费在线观看 | 色片网站在线观看 | 国产美女免费看 | 日韩视频一区二区三区在线播放免费观看 | 蜜臀av免费一区二区三区 | 日韩电影一区二区三区在线观看 | 久久9999久久免费精品国产 | 91亚洲影院| 在线观看一区二区视频 | 深爱激情综合网 | 亚洲欧美视频在线播放 | 三级在线视频观看 | 国产性天天综合网 | 日本一区二区免费在线观看 | 成人国产精品免费观看 | 日韩手机在线观看 | 欧美一二三专区 | 一区二区视频在线播放 | 国产视频日韩 | 香蕉色综合 | a特级毛片 | av高清一区| 麻花传媒mv免费观看 | 99久久999久久久精玫瑰 | 激情五月婷婷激情 | 天天伊人网 | 日本久久高清视频 | 欧美性极品xxxx娇小 | 日本精品一区二区三区在线播放视频 | 色婷婷免费 | 亚洲精品国偷拍自产在线观看 | 在线观看精品一区 | 日日干,天天干 | 久久免费视频一区 | 欧美日韩一区三区 | 国产精品不卡在线播放 | 久久久九色精品国产一区二区三区 | 三三级黄色片之日韩 | 久香蕉 | 亚洲欧美国产精品va在线观看 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 欧美一级日韩三级 | 国内视频在线 | 国产成人精品在线播放 | 成人久久久久久久久久 | 亚洲专区在线播放 | 激情综合五月天 | 国产成人精品一区二三区 | 在线97| 亚洲男男gaygayxxxgv | 中文字幕文字幕一区二区 | 免费在线观看视频一区 | 男女视频久久久 | 黄色av成人在线 | 在线观看黄av | 久久久国产视频 | 亚州性色 | 久久精品99国产精品亚洲最刺激 | 亚洲精品中文字幕视频 | 免费黄色a网站 | 国产又黄又爽又猛视频日本 | 亚洲日本精品视频 | 中国一级片在线观看 | 成人免费在线播放视频 | 色久网| 国产精品高清在线 | 91综合色 | 国产艹b视频 | 中文字幕 影院 | 午夜视频日本 | 九九欧美视频 | 97超碰人人澡 | 日韩免费三区 | 欧美电影黄色 | 久久成人18免费网站 | 欧美成人区 | 婷婷亚洲最大 | 国产免费观看视频 | 亚洲精品乱码白浆高清久久久久久 | 精品在线视频一区二区三区 | 国产日产高清dvd碟片 | 久久99精品热在线观看 | 日韩精品中文字幕在线 | 99精品免费久久久久久久久 | 欧美久久九九 | 伊人资源视频在线 | 国产成a人亚洲精v品在线观看 | 精品在线观看一区二区 | 国产精品美女在线观看 | 99久久精品一区二区成人 | 亚洲国产一区在线观看 | 欧美精品乱码99久久影院 | 夜色资源站国产www在线视频 | 欧美成年网站 | 久草在线 | 九九视频精品免费 | 99久久99久久 | 色婷婷综合久久久久中文字幕1 | 婷婷综合久久 |