精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java的Set集合,你真的會用嗎?HashSet/TreeSet/LinkedHashSet

開發(fā) 前端
HashSet、LinkedHashSet、TreeSet,這三個常用的Set集合的共同點是都實現(xiàn)了Set接口,所以使用方式都是一樣的,使用add()?方法添加元素,使用remove()?刪除元素,使用contains()?方法判斷元素是否存在,使用iterator()方法迭代遍歷元素,這三個類都可以去除重復(fù)元素。

引言

當(dāng)我們需要對元素去重的時候,會使用Set集合,可選的Set集合有三個,分別是HashSet、LinkedHashSet、TreeSet,這三個常用的Set集合有什么區(qū)別呢?底層實現(xiàn)原理是什么樣?這篇文章一起來深度剖析。

共同點這三個類都實現(xiàn)了Set接口,所以使用方式都是一樣的,使用add()方法添加元素,使用remove()刪除元素,使用contains()方法判斷元素是否存在,使用iterator()方法迭代遍歷元素,這三個類都可以去除重復(fù)元素。

特性

  1. HashSet是最基礎(chǔ)的Set集合,可以去除重復(fù)元素,元素存儲是無序的。
  2. LinkedHashSet在HashSet功能基礎(chǔ)上,增加了按照元素插入順序或者訪問順序的迭代方式。
  3. TreeSet在HashSet功能基礎(chǔ)上,可以保證按照元素大小順序排列。

底層實現(xiàn)

  1. HashSet是基于HashMap實現(xiàn)的,使用組合的方式,并非繼承。
  2. LinkedHashSet繼承自HashSet,而內(nèi)部則是采用組合LinkedHashMap的方式實現(xiàn)的。[流汗] 就是這么亂,一會兒看一下源碼就明白了。
  3. TreeSet是基于TreeMap實現(xiàn)的,采用組合的方式,跟上面兩個Set集合沒關(guān)系。

圖片圖片

下面詳細看一下這三個Set集合源碼的底層實現(xiàn):

HashSet源碼實現(xiàn)

類屬性

public class HashSet<E>
        extends AbstractSet<E>
        implements Set<E>, Cloneable, java.io.Serializable {

    /**
     * 使用HashMap存儲數(shù)據(jù)
     */
    private transient HashMap<E, Object> map;

    /**
     * value的默認值
     */
    private static final Object PRESENT = new Object();

}

可以看出HashSet實現(xiàn)了Set接口,內(nèi)部采用HashMap存儲元素,利用了HashMap的key不能重復(fù)的特性,實現(xiàn)元素去重。而value使用默認值,是一個空對象,沒有任何作用,純粹占坑。

初始化

HashSet常用的構(gòu)造方法有兩個,有參構(gòu)造方法,可以指定初始容量和負載系數(shù)。

/**
 * 無參構(gòu)造方法
 */
HashSet<Integer> hashSet1 = new HashSet<>();

/**
 * 有參構(gòu)造方法,指定初始容量和負載系數(shù)
 */
HashSet<Integer> hashSet = new HashSet<>(16, 0.75f);

再看一下構(gòu)造方式對應(yīng)的源碼實現(xiàn):

/**
 * 無參構(gòu)造方法
 */
public HashSet() {
    map = new HashMap<>();
}

/**
 * 有參構(gòu)造方法,指定初始容量和負載系數(shù)
 */
public HashSet(int initialCapacity, float loadFactor) {
    map = new HashMap<>(initialCapacity, loadFactor);
}

HashSet的構(gòu)造方式源碼也很簡單,都是利用的HashMap的構(gòu)造方法實現(xiàn)。

常用方法源碼

再看一下HashSet常用方法源碼實現(xiàn):

/**
 * 添加元素
 */
public boolean add(E e) {
    return map.put(e, PRESENT) == null;
}

/**
 * 刪除元素
 */
public boolean remove(Object o) {
    return map.remove(o) == PRESENT;
}

/**
 * 判斷是否包含元素
 */
public boolean contains(Object o) {
    return map.containsKey(o);
}

/**
 * 迭代器
 */
public Iterator<E> iterator() {
    return map.keySet().iterator();
}

HashSet方法源碼也很簡單,都是利用HashMap的方法實現(xiàn)邏輯。利用HashMap的key不能重復(fù)的特性,value使用默認值,contains()方法和iterator()方法也都是針對key進行操作。

LinkedHashSet源碼實現(xiàn)

類屬性

LinkedHashSet繼承自HashSet,沒有任何私有的屬性。

public class LinkedHashSet<E>
        extends HashSet<E>
        implements Set<E>, Cloneable, java.io.Serializable {
}

初始化

LinkedHashSet常用的構(gòu)造方法有三個,有參構(gòu)造方法,可以指定初始容量和負載系數(shù)。

/**
 * 無參構(gòu)造方法
 */
Set<Integer> linkedHashSet1 = new LinkedHashSet<>();

/**
 * 有參構(gòu)造方法,指定初始容量
 */
Set<Integer> linkedHashSet2 = new LinkedHashSet<>(16);

/**
 * 有參構(gòu)造方法,指定初始容量和負載系數(shù)
 */
Set<Integer> linkedHashSet3 = new LinkedHashSet<>(16, 0.75f);

再看一下構(gòu)造方法的源碼實現(xiàn):

/**
 * 無參構(gòu)造方法
 */
public LinkedHashSet() {
    super(16, .75f, true);
}

/**
 * 有參構(gòu)造方法,指定初始容量
 */
public LinkedHashSet() {
    super(16, .75f, true);
}

/**
 * 有參構(gòu)造方法,指定初始容量和負載系數(shù)
 */
public LinkedHashSet(int initialCapacity, float loadFactor) {
    super(initialCapacity, loadFactor, true);
}

LinkedHashSet的構(gòu)造方法使用的是父類HashSet的構(gòu)造方法,而HashSet的構(gòu)造方法使用的是LinkedHashMap的構(gòu)造方法,設(shè)計的就是這么亂!

public class HashSet<E>
        extends AbstractSet<E>
        implements Set<E>, Cloneable, java.io.Serializable {

    /**
     * HashSet的構(gòu)造方法,底層使用的是LinkedHashMap,專門給LinkedHashSet使用
     *
     * @param initialCapacity 初始容量
     * @param loadFactor      負載系數(shù)
     * @param dummy           這個字段沒啥用
     */
    HashSet(int initialCapacity, float loadFactor, boolean dummy) {
        map = new LinkedHashMap<>(initialCapacity, loadFactor);
    }

}

LinkedHashSet的其他方法也是使直接用的父類HashSet的方法,就不用看了。

LinkedHashSet額外實現(xiàn)了按照元素的插入順序或者訪問順序進行迭代的功能,是使用LinkedHashMap的實現(xiàn),不了解LinkedHashMap的,可以看一下上篇文章對LinkedHashMap的源碼解析。

TreeSet源碼實現(xiàn)

類屬性

public class TreeSet<E> extends AbstractSet<E>
        implements NavigableSet<E>, Cloneable, java.io.Serializable {

    /**
     * 用來存儲數(shù)據(jù)
     */
    private transient NavigableMap<E, Object> m;

    /**
     * value的默認值
     */
    private static final Object PRESENT = new Object();

}

TreeSet內(nèi)部使用NavigableMap存儲數(shù)據(jù),而NavigableMap是TreeMap的父類,后面在初始化NavigableMap的時候,會用TreeMap進行替換。而value使用默認空對象,與HashSet類似。

初始化

TreeSet有兩個構(gòu)造方法,有參構(gòu)造方法,可以指定排序方式,默認是升序。

/**
 * 無參構(gòu)造方法
 */
TreeSet<Integer> treeSet1 = new TreeSet<>();

/**
 * 有參構(gòu)造方法,傳入排序方式,默認升序,這里傳入倒序
 */
TreeSet<Integer> treeSet2 = new TreeSet<>(Collections.reverseOrder());

再看一下構(gòu)造方法的源碼實現(xiàn):

TreeSet(NavigableMap<E,Object> m) {
    this.m = m;
}

/**
 * 無參構(gòu)造方法
 */
public TreeSet() {
    this(new TreeMap<E, Object>());
}

/**
 * 有參構(gòu)造方法,傳入排序方式,默認升序,這里傳入倒序
 */
public TreeSet(Comparator<? super E> comparator) {
    this(new TreeMap<>(comparator));
}

TreeSet的構(gòu)造方法內(nèi)部是直接使用的TreeMap的構(gòu)造方法,是基于TreeMap實現(xiàn)的。

常用方法源碼

/**
 * 添加元素
 */
public boolean add(E e) {
    return m.put(e, PRESENT) == null;
}

/**
 * 刪除元素
 */
public boolean remove(Object o) {
    return m.remove(o) == PRESENT;
}

/**
 * 判斷是否包含元素
 */
public boolean contains(Object o) {
    return m.containsKey(o);
}

/**
 * 迭代器
 */
public Iterator<E> iterator() {
    return m.navigableKeySet().iterator();
}

TreeSet常用方法的底層實現(xiàn)都是使用的TreeMap的方法邏輯,就是這么偷懶。

TreeSet可以按元素大小順序排列的功能,也是使用TreeMap實現(xiàn)的,感興趣的可以看一下上篇文章講的TreeMap源碼。由于TreeSet可以元素大小排列,所以跟其他Set集合相比,增加了一些按照元素大小范圍查詢的方法。

其他方法列表:

作用

方法簽名

獲取第一個元素

E first()

獲取最后一個元素

E last()

獲取大于指定鍵的最小鍵

E higher(E e)

獲取小于指定鍵的最大元素

E lower(E e)

獲取大于等于指定鍵的最小鍵

E ceiling(E e)

獲取小于等于指定鍵的最大鍵

E floor(E e)

獲取并刪除第一個元素

E pollFirst()

獲取并刪除最后一個元素

E pollLast()

獲取前幾個元素(inclusive表示是否包含當(dāng)前元素)

NavigableSetheadSet(E toElement, boolean inclusive)

獲取后幾個元素(inclusive表示是否包含當(dāng)前元素)

NavigableSettailSet(E fromElement, boolean inclusive)

獲取其中一段元素集合(inclusive表示是否包含當(dāng)前元素)

NavigableSetsubSet(E fromElement, boolean fromInclusive, E toElement,   boolean toInclusive)

獲取其中一段元素集合(左開右開)

SortedSetsubSet(E fromElement, E toElement)

獲取前幾個元素(不包含當(dāng)前元素)

SortedSetheadSet(E toElement)

獲取后幾個元素(不包含當(dāng)前元素)

SortedSettailSet(E fromElement)

總結(jié)

HashSet、LinkedHashSet、TreeSet,這三個常用的Set集合的共同點是都實現(xiàn)了Set接口,所以使用方式都是一樣的,使用add()方法添加元素,使用remove()刪除元素,使用contains()方法判斷元素是否存在,使用iterator()方法迭代遍歷元素,這三個類都可以去除重復(fù)元素。

不同點是:HashSet的關(guān)鍵特性:

  1. 是最基礎(chǔ)的Set集合,可以去除重復(fù)元素。
  2. HashSet是基于HashMap實現(xiàn)的,使用組合的方式,并非繼承。
  3. 利用了HashMap的key不重復(fù)的特性,而value是一個默認空對象,其他方法也都是使用HashMap實現(xiàn)。

LinkedHashSet的關(guān)鍵特性:

  1. LinkedHashSet繼承自HashSet,而內(nèi)部則是采用組合LinkedHashMap的方式實現(xiàn)的。
  2. LinkedHashSet在HashSet功能基礎(chǔ)上,增加了按照元素插入順序或者訪問順序的迭代方式,代價是額外增加一倍的存儲空間。
  3. 方法內(nèi)部都是使用LinkedHashMap實現(xiàn)的。

TreeSet的關(guān)鍵特性:

  1. TreeSet是基于TreeMap實現(xiàn)的,也是采用組合的方式。
  2. TreeSet在HashSet功能基礎(chǔ)上,可以保證按照元素大小順序排列,代價是查詢、插入、刪除接口的時間復(fù)雜度從O(1)退化到O(log n)。
  3. 方法內(nèi)部都是使用TreeMap實現(xiàn)的。
責(zé)任編輯:武曉燕 來源: 一燈架構(gòu)
相關(guān)推薦

2018-09-29 15:34:34

JavaList接口

2020-06-04 14:15:55

Java中BigDecimal函數(shù)

2025-08-06 08:53:35

2016-05-04 10:36:42

iossdwebimage開發(fā)

2025-01-20 00:00:00

反射Java語言

2025-04-01 08:00:00

curl開發(fā)運維

2024-01-25 10:14:09

HashSetHashMapJava

2020-12-18 08:59:51

蘋果iCloud儲存照片

2024-12-27 09:29:09

2023-11-01 13:48:00

反射java

2025-02-14 08:30:49

SpringJava開發(fā)

2019-07-25 12:46:32

Java高并發(fā)編程語言

2021-05-21 12:36:16

限流代碼Java

2024-03-06 08:15:03

@Autowired注入方式Spring

2022-01-17 07:32:34

Java參數(shù)方法

2012-05-02 10:47:51

JavaJava集合框架

2016-06-01 15:42:58

Hadoop數(shù)據(jù)管理分布式

2020-09-02 14:20:21

JavaHashSetTreeSet

2021-08-11 10:00:51

緩存MyBatis管理

2021-09-06 10:42:18

Linux命令服務(wù)器
點贊
收藏

51CTO技術(shù)棧公眾號

国产成人福利av| 亚洲成a人片在线| 欧美色女视频| 91精品国产一区二区三区蜜臀 | 最新国产在线观看| 国产精品99久久久久久久女警| 97国产精品久久| 亚洲不卡的av| 久久婷婷国产| 9191久久久久久久久久久| 丁香花在线影院观看在线播放| 国产午夜精品一区理论片| 国产一区二区三区四区五区入口| 午夜精品三级视频福利| www.com.av| 亚洲裸色大胆大尺寸艺术写真| 这里是久久伊人| 久久无码高潮喷水| 女子免费在线观看视频www| 国产亚洲一区字幕| 国产综合18久久久久久| 91成人国产综合久久精品| 亚洲欧美视频一区二区三区| 日韩亚洲国产中文字幕| 亚洲 小说 欧美 激情 另类| 欧美欧美在线| 欧美日韩在线直播| 亚洲午夜精品久久久久久人妖| 久草中文在线| 亚洲国产精品二十页| 久久国产精品久久精品国产| 国产成人精品a视频| 麻豆精品一区二区三区| 国产成人+综合亚洲+天堂| 玛丽玛丽电影原版免费观看1977 | 视频在线精品一区| 色婷婷av一区二区三| 国产美女主播视频一区| 国产精品黄视频| 99久久精品国产亚洲| 亚洲婷婷在线| 欧美国产在线电影| 外国一级黄色片| 国产精品成久久久久| 最好看的2019年中文视频| 黑人巨大精品欧美| 天堂资源在线亚洲| 精品视频在线播放色网色视频| 日本久久久久久久久久| 伊人久久影院| 欧美成人vr18sexvr| 国产精品偷伦视频免费观看了 | 久久婷婷av| 91福利视频网| 五月天婷婷激情| 一级成人国产| 欧美中文字幕在线| 波多野结衣日韩| 日韩电影在线看| 国产精品一区二区三区成人| 91片黄在线观看喷潮| 久草中文综合在线| 亚洲aⅴ男人的天堂在线观看| 国产精品女同一区二区| 国产精选一区二区三区| 99精品国产高清一区二区| 国产成人三级在线观看视频| 不卡影院免费观看| 欧美久久综合性欧美| 国产天堂在线| 国产精品每日更新| 国产av第一区| 91破解版在线观看| 日韩欧美aaa| 91人人澡人人爽人人精品| 日批视频免费观看| 米奇777四色精品人人爽| 欧美国产精品劲爆| 偷拍盗摄高潮叫床对白清晰| 污视频在线看网站| 欧美日韩免费一区| 男操女免费网站| 91精品国产自产观看在线| 欧美大片一区二区三区| 超碰97人人干| 天天久久综合| 91精品国产成人| 中文字幕第315页| 国产精一区二区三区| 精品欧美日韩| 天天综合视频在线观看| 亚洲国产日韩a在线播放| 丁香啪啪综合成人亚洲| gogo大尺度成人免费视频| 精品国产三级电影在线观看| 波多野结衣 在线| 我不卡影院28| 欧美一级黑人aaaaaaa做受| 亚洲 小说区 图片区| 国产美女娇喘av呻吟久久| 国产日韩精品久久| 免费av在线网址| 欧美日韩亚洲一区二| 亚洲欧美天堂在线| 亚洲人和日本人hd| 欧美成人小视频| 成人免费毛片男人用品| 国产精品一区二区果冻传媒| 奇米影视首页 狠狠色丁香婷婷久久综合| 免费在线毛片网站| 动漫精品一区二区| 中文字幕无码毛片免费看| 精品香蕉视频| 97超级碰碰碰| jizz中国女人| 国产精品免费看片| 日本韩国欧美在线观看| 久久伊人精品| 最新91在线视频| 中文字字幕在线中文| 国产成人aaaa| 在线不卡日本| 日韩美女在线看免费观看| 亚洲国产精品va在线| 久久久久久九九九九| 日韩精品卡通动漫网站| 久久久五月天| 国产精品日韩久久久久| 亚洲欧美日韩综合在线| 亚洲小说欧美激情另类| 无套白嫩进入乌克兰美女| 99re6这里只有精品| 日本久久精品视频| 视频国产在线观看| 午夜精品aaa| 国产高潮失禁喷水爽到抽搐 | 伊人久久久久久久久久久久 | 日日夜夜一区二区| 久久久久久久久久久久久久一区| 欧美日韩在线视频免费观看| 欧美一级国产精品| 91久久久久久久久久久久久久| 日韩精品高清不卡| 欧洲亚洲一区二区| 日本一区二区三区视频在线| 亚洲欧美一区二区三区四区 | 丁香花在线影院| 日韩欧美国产综合一区 | 国产ts在线播放| 羞羞视频在线观看欧美| 欧美日本国产精品| 午夜无码国产理论在线| 亚洲一区第一页| 国产天堂第一区| 日本一区二区综合亚洲| 91福利国产成人精品播放| 欧美在线色图| 成人免费直播live| 影院在线观看全集免费观看| 日韩欧美高清一区| 一级aaa毛片| 91玉足脚交白嫩脚丫在线播放| 欧美 日韩 国产一区| 国产精品一区2区3区| 国产欧美日韩精品丝袜高跟鞋| 色三级在线观看| 日韩精品专区在线影院重磅| 在线看成人av| 久久嫩草精品久久久久| 日本888xxxx| 国产1区2区3区4区| 国产一区二区三区四区老人| 国产一区免费| 五月激情久久| 欧美精品中文字幕一区| 免费国产精品视频| 欧美综合一区二区三区| 一区视频免费观看| 91免费观看视频在线| 99视频在线视频| 欧美一区网站| 久久国产精品久久| 欧美a一级片| 久久久久久久久久久人体| 涩爱av在线播放一区二区| 欧美自拍偷拍一区| 久久久国产成人| 久久你懂得1024| 中文字幕第66页| 国产亚洲精品久久久久婷婷瑜伽| 亚洲不卡中文字幕| 国产成人澳门| 成人免费视频a| 欧美大片免费| 久久99国产综合精品女同| 免费一级毛片在线观看| 日韩午夜在线观看视频| 欧美日韩综合一区二区三区| 亚洲精品视频免费观看| 乐播av一区二区三区| 国产成人精品网址| 欧美 日本 亚洲| 亚洲乱码电影| 色噜噜狠狠色综合网| 91久久偷偷做嫩草影院电| 国产精品久久久久久久久久东京| 日本三级韩国三级欧美三级| 在线精品播放av| 日日夜夜精品免费| 日韩亚洲欧美一区二区三区| 亚洲午夜无码久久久久| 午夜av一区二区| 国产精品成人免费观看| 国产精品久久久爽爽爽麻豆色哟哟| www男人天堂| 国精产品一区一区三区mba视频| 日本黄网站免费| 精品成人在线| 激情五月六月婷婷| 五月开心六月丁香综合色啪| 日韩在线三区| 亚洲女娇小黑人粗硬| 国产激情一区二区三区在线观看| 在线日韩三级| 国产日本欧美一区二区三区在线| 黑人巨大精品| 亚洲一区二区三区视频在线播放| 99久久久久国产精品免费| 九色porny丨入口在线| 久99九色视频在线观看| 免费看a在线观看| 日韩小视频在线观看| 国产小视频免费在线观看| 日韩精品高清视频| 五月天激情婷婷| 精品福利视频一区二区三区| a网站在线观看| 日韩一区二区免费电影| 国产精品久久久久久免费播放| 欧美三级三级三级爽爽爽| 免费黄色片视频| 91国偷自产一区二区开放时间| 波多野结衣视频网站| 欧美色道久久88综合亚洲精品| 亚洲一区欧美在线| 黑人巨大精品欧美一区二区一视频| 日本系列第一页| 福利精品视频在线| 黄色一级视频免费看| 在线观看国产日韩| 中日韩在线观看视频| 欧美日韩精品欧美日韩精品| 国产影视一区二区| 欧美一区二区黄| 狠狠躁日日躁夜夜躁av| 欧美精品一区二区精品网| 天堂成人在线视频| 亚洲欧美日韩区| 在线免费观看黄色| 美乳少妇欧美精品| xxx.xxx欧美| 欧洲亚洲妇女av| 国产精品亚洲d| 91久久久久久久| 丁香一区二区| 欧美在线激情| 91精品一区国产高清在线gif| 国产一级黄色录像片| 在线日韩视频| 精品视频一区二区在线| 免费不卡在线视频| 男生和女生一起差差差视频| 成人国产精品免费网站| 草草影院第一页| 国产精品久久毛片a| 成人免费看片98| 一本一道久久a久久精品| 在线视频1卡二卡三卡| 日韩午夜中文字幕| 黄色小视频在线免费观看| 精品国产区一区二区三区在线观看| 亚洲综合图区| 国产成人精品国内自产拍免费看| 伊人久久一区| 六十路精品视频| 91成人精品| 久章草在线视频| 国产传媒一区在线| a级黄色片网站| 亚洲欧洲高清| 91在线精品播放| 婷婷综合电影| 无码人妻aⅴ一区二区三区日本| 亚洲国产裸拍裸体视频在线观看乱了中文 | 在线亚洲国产精品网站| 欧美伦理片在线观看| 成人午夜免费电影| 青青青手机在线视频| 午夜精品一区二区三区电影天堂 | 欧美片一区二区| 91国偷自产一区二区三区观看| 肥臀熟女一区二区三区| 日韩中文在线中文网在线观看| av资源网在线播放| 成人免费网站在线观看| 欧美精品第一区| 可以看毛片的网址| 国产麻豆日韩欧美久久| 天天舔天天操天天干| 天天射综合影视| 国产黄色小视频在线观看| 国产亚洲精品久久久优势| 99riav视频在线观看| 91久久嫩草影院一区二区| 激情综合网站| 日日橹狠狠爱欧美超碰| 国产盗摄一区二区三区| 国产色无码精品视频国产| 欧洲av一区二区嗯嗯嗯啊| 香蕉视频免费在线看| 欧美激情视频网站| 欧美电影在线观看一区| 亚洲欧洲一区二区| 日韩精品一区第一页| 久久久无码人妻精品一区| 亚洲国产日韩在线一区模特| 国产黄色大片网站| 久久高清视频免费| 日韩美女在线| 在线视频福利一区| 免费观看久久久4p| 国产精品www爽爽爽| 91福利精品视频| 九一在线视频| 日本午夜精品理论片a级appf发布| 国产精品一线| 成人毛片视频网站| 91一区二区在线观看| 久久精品视频1| 亚洲片在线资源| 天天免费亚洲黑人免费| 欧美一区2区三区4区公司二百| 亚洲一区二区动漫| 日韩乱码人妻无码中文字幕久久| 欧美性色视频在线| 韩国福利在线| 国产精品嫩草影院一区二区| 大片网站久久| www.色就是色.com| 亚洲激情自拍视频| 亚洲精品久久久久久久久久久久久久| 欧美激情视频在线观看| 91精品啪在线观看国产爱臀 | 日韩精品在线免费观看| 亚洲女同志freevdieo| 欧美久久综合性欧美| 日韩av成人高清| 日韩在线不卡av| 欧美一区二区三区男人的天堂| 日本在线视频www鲁啊鲁| 精品卡一卡二| 日韩成人免费电影| 91杏吧porn蝌蚪| 精品对白一区国产伦| 午夜影院在线播放| 午夜精品区一区二区三| 蜜臀久久99精品久久久画质超高清| 国产免费美女视频| 精品少妇一区二区三区在线视频| 91www在线| 日韩高清在线播放| 国产一区二区导航在线播放| 亚洲国产精品午夜在线观看| 亚洲天堂影视av| 视频一区日韩精品| 免费无码国产v片在线观看| 国产精品入口麻豆原神| 丰满人妻一区二区| 国产成人小视频在线观看| 一区二区三区四区日韩| 日b视频在线观看| 欧美人与禽zozo性伦| 国产又色又爽又黄刺激在线视频| 蜜桃臀一区二区三区| 久久99久久久久久久久久久| 久久高清免费视频| 色妞一区二区三区| 激情小说一区| 午夜精品免费看| 欧美日韩一区免费| 中文av资源在线| 欧美在线播放一区二区| 国产精品99久| 国产精品午夜一区二区| 久久乐国产精品| 99精品全国免费观看视频软件| 影音先锋黄色资源| 3751色影院一区二区三区| 一区二区乱码| 日韩精品一区二区免费|