精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

伊人亚洲综合网| 日韩乱码人妻无码中文字幕久久 | 在线观看免费亚洲| 91国产在线播放| 久久精品免费av| 欧美精品尤物在线观看| 日韩欧美国产成人| 在线码字幕一区| 东京干手机福利视频| 久久精品中文| 免费不卡在线观看av| 精品无码一区二区三区| 变态调教一区二区三区| 久久国产乱子精品免费女| 欧美猛交免费看| 精品人妻无码一区二区三区换脸| 日本乱码一区二区三区不卡| 成人av中文字幕| 国产精品自拍偷拍| 日本在线观看视频网站| 亚洲精品成人| 中文字幕一精品亚洲无线一区 | 中文字幕黄色网址| 久久久综合久久久| 亚洲天堂日韩av| 成人综合一区| 亚洲剧情一区二区| 大桥未久恸哭の女教师| 国产精品原创视频| 色噜噜狠狠色综合中国| 欧美日韩一区二区三| 亚洲国产成人精品一区二区三区| 影音先锋中文字幕一区| 亚洲国产成人精品久久| 国产欧美在线一区| av在线私库| 亚洲精品福利视频网站| 色综合电影网| 久草福利在线| 久久久久久久精| 欧美女孩性生活视频| 精品自在线视频| 国产精品酒店视频| 欧洲杯什么时候开赛| 日韩精品中文字幕在线| 日韩免费毛片视频| 僵尸再翻生在线观看免费国语| 久久精品日产第一区二区三区高清版| 国产精品国产三级国产aⅴ浪潮| 国产精品视频看看| 久久美女视频| 日韩一区二区三区视频在线| www.夜夜爽| 国产激情久久| 欧美三级蜜桃2在线观看| 日韩精品久久一区二区| 国产美女性感在线观看懂色av| 精品一区二区三区影院在线午夜 | 国产精品69xx| 一区二区高清视频在线观看| 亚洲国产精品女人| 肉体视频在线| 午夜精品久久久久久久99水蜜桃| 一区二区三区四区免费视频| 超碰在线国产| 99久久久免费精品国产一区二区| 国产有码在线一区二区视频| 91精品国产乱码久久久| 激情综合亚洲精品| 99在线视频免费观看| 亚洲免费一级片| av一区二区三区四区| 久久精品日产第一区二区三区| 国产精品毛片久久久久久久av| 欧美专区18| 国产精品高潮在线| 97人妻精品一区二区三区动漫 | 色天使在线观看| 亚洲一区av| 日韩欧美中文字幕精品| 中文字幕乱码在线| 精品不卡一区| 久久天堂av综合合色| 精品少妇theporn| 亚洲在线久久| 91av在线影院| 一级特黄aa大片| 高清成人免费视频| 日本一区二区三区精品视频| 黄页视频在线播放| 香蕉av福利精品导航| 成人午夜视频免费在线观看| 亚洲伊人精品酒店| 亚洲精品91美女久久久久久久| 秋霞午夜鲁丝一区二区| jizz性欧美23| 中文字幕av一区二区三区谷原希美| 国产精品无码久久久久久| 清纯唯美亚洲综合一区| 久久久久久亚洲精品不卡| 人人草在线观看| 国产精品影视在线| 日本一区二区久久精品| 欧美6一10sex性hd| 欧美日韩在线不卡| 亚洲欧美日韩偷拍| 日韩av影院| 久久久国产精品视频| 国产性猛交╳xxx乱大交| 国内久久精品视频| 亚洲在线免费看| 国产一区二区三区三州| 狠狠久久亚洲欧美| 欧美性xxxx69| aaa在线播放视频| 欧美一区二区三区四区视频| www.偷拍.com| 日韩精品第一区| 欧美中文字幕在线| 欧美 日韩 中文字幕| 18欧美乱大交hd1984| 国产精品第12页| 日本欧美高清| 最新日韩中文字幕| 免费黄色av片| 成人avav在线| 久久手机在线视频| 久久九九精品视频| 最新的欧美黄色| 中文字幕二区三区| 国产日产欧产精品推荐色 | 人妻无码一区二区三区久久99| 不卡一区二区中文字幕| 三级在线免费观看| 亚洲综合资源| 日韩av在线免费| 国产又粗又猛又爽又黄av| 最新日韩在线| 国产精品免费一区二区三区四区| 你懂的视频在线播放| 亚洲成人777| 91丝袜在线观看| 日韩视频二区| 久久综合九九| 免费福利视频一区二区三区| 欧美精品vⅰdeose4hd| 成人免费视频入口| 久久99国产精品尤物| 亚洲一区二区在线观| 成人av集中营| 日韩网站免费观看| 99久久久国产精品无码网爆| 亚洲色图都市小说| 99999精品| 国产主播精品| 久久精品丝袜高跟鞋| 多野结衣av一区| 欧美精品18+| caoporn91| 免费欧美日韩国产三级电影| 婷婷久久五月天| 国产精品色婷婷在线观看| 久久国产精品电影| 成人午夜视频一区二区播放| 亚洲国产精品精华液网站| av在线免费看片| 欧美区一区二| 久久综合精品一区| 黄色成人小视频| 亚洲久久久久久久久久| 日韩三级视频在线| 久久久久综合网| 国产精品嫩草影院8vv8 | 久久国产精品第一页| 鲁片一区二区三区| 成人黄色免费网站| 久久成年人视频| 手机看片1024日韩| 一本色道综合亚洲| 久久久久久久久免费看无码 | 国产精品宾馆在线精品酒店| 国产精品密蕾丝视频下载| 国产精品网站大全| 日本动漫理论片在线观看网站| 7777精品伊人久久久大香线蕉的| 久久婷婷五月综合| 久久精品亚洲一区二区| 亚洲最大色综合成人av| 精品国产导航| 91免费国产视频| 色偷偷偷在线视频播放| 久久精品国产久精国产一老狼| 亚洲系列第一页| 亚洲国产aⅴ天堂久久| 日批免费观看视频| 日韩不卡在线观看日韩不卡视频| 鲁鲁狠狠狠7777一区二区| 亚洲人成网站在线在线观看| 91精品国产91久久久久久吃药| 亚洲欧美自偷自拍| 欧美精选午夜久久久乱码6080| 少妇一级黄色片| 麻豆91在线播放| 日韩欧美一区三区| 久久久国产精品| 免费国产在线精品一区二区三区| 校园春色亚洲色图| 欧美大秀在线观看| 99免在线观看免费视频高清| 亚洲国产天堂久久综合| 国产成人在线免费观看视频| 国产精品国产三级国产aⅴ原创 | 国产真实乱子伦精品视频| 一二三四视频社区在线| 99精品视频在线| 日本一区二区在线视频观看| 18国产精品| 91高清免费视频| 日本大片在线播放| 萌白酱国产一区二区| 亚洲男人第一天堂| 欧美日本在线观看| av一级在线观看| 天天av天天翘天天综合网| 日本天堂中文字幕| 亚洲人成小说网站色在线| 色哟哟视频在线| 国产经典欧美精品| 超碰在线超碰在线| 精品夜夜嗨av一区二区三区| 美女网站免费观看视频| 欧美阿v一级看视频| 日韩三级电影| 欧美经典一区| 成人激情电影一区二区| 全球中文成人在线| 国产一区二区在线播放| 成人国产精选| 国产日韩欧美综合| 亚洲色图图片| 亚洲一区二区中文| 欧美视频二区欧美影视| 欧亚精品在线观看| 日韩欧美一中文字暮专区| 91精品国产91久久久久久久久 | 久久精品亚洲国产| 国产免费av高清在线| 欧美成人福利视频| hs视频在线观看| 欧美电影免费观看完整版 | 一本一道久久a久久精品| 你懂的国产在线| 日韩欧美一区二区三区| 少妇高潮av久久久久久| 色婷婷精品大在线视频| 高潮毛片又色又爽免费 | 欧美福利小视频| 黄页在线观看免费| 8050国产精品久久久久久| 在线天堂新版最新版在线8| 国产成人久久久| 国产一区二区色噜噜| 亚洲va欧美va国产综合剧情| 亚洲综合网狠久久| 久久久久久精| 成人女性视频| 亚洲高潮无码久久| 亚洲精品少妇| wwwwww.色| 韩国av一区二区三区在线观看| 免费午夜视频在线观看| 蜜芽一区二区三区| 国产男女无遮挡猛进猛出| 成人av手机在线观看| 精品少妇一区二区三区免费观| www.亚洲色图.com| 播金莲一级淫片aaaaaaa| 欧美激情中文不卡| 中文字幕亚洲欧美日韩| 精品成人av一区| 依依成人在线视频| 精品国产麻豆免费人成网站| 日韩电影免费| 久久天天躁狠狠躁夜夜躁 | 91香蕉视频mp4| 成年人视频软件| 欧美极品aⅴ影院| 在线观看国产精品一区| 久久人人97超碰com| 99国产精品免费| 亚洲大片精品永久免费| 中文字幕+乱码+中文字幕明步| 欧美在线观看一区二区| 国产xxxx在线观看| 亚洲人a成www在线影院| 男人天堂网在线观看| 久久人人爽人人爽爽久久| 色综合久久影院| 97视频在线观看亚洲| 日本国产亚洲| 美国av一区二区三区| 婷婷久久国产对白刺激五月99| 综合网五月天| 久久久久久自在自线| 岛国精品一区二区三区| 丁香一区二区三区| 日韩人妻无码一区二区三区| 成人欧美一区二区三区黑人麻豆 | 你懂的在线播放| 久久99热精品| 色在线中文字幕| 999久久久| 91日韩免费| 欧美精品无码一区二区三区| 成人app下载| 九九在线观看视频| 69堂成人精品免费视频| www免费网站在线观看| 欧美性受xxx| 精品国内亚洲2022精品成人| 女同一区二区| 最新日韩欧美| 精品无码人妻少妇久久久久久| 91在线视频在线| 免费在线观看日韩| 7777精品伊人久久久大香线蕉 | 午夜精品久久久久久毛片| 91传媒视频免费| 国产大片一区| 国产极品尤物在线| 蜜桃av一区二区在线观看| 成年人在线观看av| 欧美日韩另类在线| 少妇精品高潮欲妇又嫩中文字幕| 伊人久久男人天堂| 国产 日韩 欧美一区| 欧美一区二区三区在线播放| 欧美亚洲专区| 扒开jk护士狂揉免费| 黑人巨大精品欧美一区免费视频 | 成人性生活视频| 精品视频在线观看| 99香蕉国产精品偷在线观看| 91亚洲一线产区二线产区| 一区二区三区 在线观看视频| 国产午夜麻豆影院在线观看| 亚洲精品国产精品国自产在线| av在线电影网| 国产欧美精品久久久| 国产精品伦理久久久久久| а 天堂 在线| 亚洲一区在线观看免费观看电影高清 | 毛片在线播放网站| 全球成人中文在线| 国产欧美日韩精品一区二区三区 | 91狠狠综合久久久| 51精品视频一区二区三区| 成人片在线看| 国产精品18毛片一区二区| 亚洲区第一页| 白白色免费视频| 欧美老女人第四色| 宅男在线观看免费高清网站| 国产欧美日韩一区| 亚洲午夜精品一区 二区 三区| caopor在线视频| 中文字幕第一区二区| 国产乱叫456在线| 欧美国产日韩在线| 免费成人av| 婷婷激情综合五月天| 亚洲成人中文在线| 韩国三级av在线免费观看| 国产在线播放91| 亚洲国产欧美国产综合一区| 国产黄片一区二区三区| 欧美高清精品3d| av丝袜在线| 性高潮久久久久久久久| 懂色av中文字幕一区二区三区| 久久精品亚洲a| 欧美成人国产一区二区| 经典三级一区二区| 欧美a级免费视频| 国产福利一区二区三区视频在线| 波多野结衣欲乱| 精品国产一区二区亚洲人成毛片| 欧美xxx黑人xxx水蜜桃| 欧美日韩一区二区视频在线| 免费视频久久| 午夜爱爱毛片xxxx视频免费看| 6080日韩午夜伦伦午夜伦| jizzjizz中国精品麻豆| 亚洲国产日韩综合一区| 成人h版在线观看| 伊人影院中文字幕| 欧美一级片一区| 欧美视频网站| 天堂网中文在线观看| 日韩电影中文字幕在线观看|