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

Java集合框架總結:Set接口的使用

開發 后端
Set集合里多個對象之間沒有明顯的順序。具體詳細方法請參考API文檔(可見身邊隨時帶上API文檔有多重要),基本與Collection方法相同。只是行為不同(Set不允許包含重復元素)。

1、Set接口的使用

Set集合里多個對象之間沒有明顯的順序。具體詳細方法請參考API文檔(可見身邊隨時帶上API文檔有多重要),基本與Collection方法相同。只是行為不同(Set不允許包含重復元素)。

Set集合不允許重復元素,是因為Set判斷兩個對象相同不是使用==運算符,而是根據equals方法。即兩個對象用equals方法比較返回true,Set就不能接受兩個對象。

  1. public class TestSet  
  2. {  
  3.     public static void main(String[] args)   
  4.     {  
  5.         Set<String> books = new HashSet<String>();  
  6.           
  7.         //添加一個字符串對象  
  8.         books.add(new String("Struts2權威指南"));  
  9.           
  10.         //再次添加一個字符串對象,  
  11.         //因為兩個字符串對象通過equals方法比較相等,所以添加失敗,返回false  
  12.         boolean result = books.add(new String("Struts2權威指南"));  
  13.           
  14.         System.out.println(result);  
  15.           
  16.         //下面輸出看到集合只有一個元素  
  17.         System.out.println(books);    
  18.     }  

程序運行結果:

  1. false  
  2. [Struts2權威指南] 

說明:程序中,book集合兩次添加的字符串對象明顯不是一個對象(程序通過new關鍵字來創建字符串對象),當使用==運算符判斷返回false,使用equals方法比較返回true,所以不能添加到Set集合中,最后只能輸出一個元素。

Set接口中的知識,同時也適用于HashSet、TreeSet和EnumSet三個實現類。

2、HashSet類

HashSet按Hash算法來存儲集合的元素,因此具有很好的存取和查找性能。

 HashSet的特點:

(1)HashSet不是同步的,多個線程訪問是需要通過代碼保證同步

(2)集合元素值可以使null。

HashSet集合判斷兩個元素相等的標準是兩個對象通過equals方法比較相等,并且兩個對象的hashCode()方法返回值也相等。

  1. //類A的equals方法總是返回true,但沒有重寫其hashCode()方法  
  2. class A  
  3. {  
  4.     public boolean equals(Object obj)  
  5.     {  
  6.         return true;  
  7.     }  
  8. }  
  9. //類B的hashCode()方法總是返回1,但沒有重寫其equals()方法  
  10. class B  
  11. {  
  12.     public int hashCode()  
  13.     {  
  14.         return 1;  
  15.     }  
  16. }  
  17. //類C的hashCode()方法總是返回2,但沒有重寫其equals()方法  
  18. class C  
  19. {  
  20.     public int hashCode()  
  21.     {  
  22.         return 2;  
  23.     }  
  24.     public boolean equals(Object obj)  
  25.     {  
  26.         return true;  
  27.     }  
  28. }  
  29. public class TestHashSet  
  30. {  
  31.     public static void main(String[] args)   
  32.     {  
  33.         HashSet<Object> books = new HashSet<Object>();  
  34.         //分別向books集合中添加2個A對象,2個B對象,2個C對象  
  35.         books.add(new A());  
  36.         books.add(new A());  
  37.         books.add(new B());  
  38.         books.add(new B());  
  39.         books.add(new C());  
  40.         books.add(new C());  
  41.         System.out.println(books);  
  42.     }  

程序運行結果:

  1. [B@1, B@1, C@2, A@b5dac4, A@9945ce] 

說明:

(1)Object類提供的toString方法總是返回該對象實現類的類名+@+hashCode(16進制數)值,所以可以看到上面程序輸出的結果。可以通過重寫toString方法來輸出自己希望的形式。

(2)即使2個A對象通過equals比較返回true,但HashSet依然把它們當成2個對象;即使2個B對象的hashCode()返回相同值,但HashSet依然把它們當成2個對象。即如果把一個對象放入HashSet中時,如果重寫該對象equals()方法,也應該重寫其hashCode()方法。其規則是:如果2個對象通過equals方法比較返回true時,這兩個對象的hashCode也應該相同。

 hash算法的功能:

它能保證通過一個對象快速查找到另一個對象。hash算法的價值在于速度,它可以保證查詢得到快速執行。

當需要查詢集合中某個元素時,hash算法可以直接根據該元素的值得到該元素保存位置,從而可以讓程序快速找到該元素。

當從HashSet中訪問元素時,HashSet先計算該元素的hashCode值(也就是調用該對象的hashCode())方法的返回值),然后直接到該hashCode對應的位置去取出該元素。

即也是快速的原因。HashSet中每個能存儲元素的“曹位(slot)”通常稱為“桶(bucket)”,如果多個元素的hashCode相同,但它們通過equals()方法比較返回false,就需要一個“桶”里放多個元素,從而導致性能下降。

繼續深入研究HashSet:

當向HashSet中添加一個可變對象后,并且后面程序修改了該可變對象的屬性,可能導致它與集合中其他元素相同,這就可能導致HashSet中包含兩個相同的對象。

看下面程序:

  1. class R  
  2. {  
  3.     int count;  
  4.     public R(int count)  
  5.     {  
  6.         this.count = count;  
  7.     }  
  8.     public String toString()  
  9.     {  
  10.         return "R(count屬性:" + count + ")";  
  11.     }  
  12.     public boolean equals(Object obj)  
  13.     {  
  14.         if (obj instanceof R)  
  15.         {  
  16.             R r = (R)obj;  
  17.             if (r.count == this.count)  
  18.             {  
  19.                 return true;  
  20.             }  
  21.         }  
  22.         return false;  
  23.     }  
  24.     public int hashCode()  
  25.     {  
  26.         return this.count;  
  27.     }  
  28. }  
  29. public class TestHashSet2  
  30. {  
  31.     public static void main(String[] args)   
  32.     {  
  33.         HashSet<R> hs = new HashSet<R>();  
  34.         hs.add(new R(5));  
  35.         hs.add(new R(-3));  
  36.         hs.add(new R(9));  
  37.         hs.add(new R(-2));  
  38.         //打印TreeSet集合,集合元素是有序排列的  
  39.         System.out.println(hs);  
  40.         //取出第一個元素  
  41.         Iterator<R> it = hs.iterator();  
  42.         R first = (R)it.next();     //first指向集合的第一個元素  
  43.         //為第一個元素的count屬性賦值  
  44.         first.count = -3;           //first指向的元素值發生改變,地址并沒有改變,大家可以試著用Java內存分配機制(棧和堆)思考下。  
  45.         //再次輸出count將看到HashSet里的元素處于無序狀態  
  46.         System.out.println(hs);  
  47.         hs.remove(new R(-3));  
  48.         System.out.println(hs);  
  49.         //輸出false  
  50.         System.out.println("hs是否包含count為-3的R對象?" + hs.contains(new R(-3)));  
  51.         //輸出false  
  52.         System.out.println("hs是否包含count為5的R對象?" + hs.contains(new R(5)));  
  53.  
  54.     }  

程序運行結果:

  1. [R(count屬性:5), R(count屬性:9), R(count屬性:-3), R(count屬性:-2)]  
  2. [R(count屬性:-3), R(count屬性:9), R(count屬性:-3), R(count屬性:-2)]  
  3. [R(count屬性:-3), R(count屬性:9), R(count屬性:-2)]  
  4. hs是否包含count為-3的R對象?false 
  5. hs是否包含count為5的R對象?false 

說明:程序重寫了R類的equals()和hashCode()方法,這兩個方法都是根據R對象的count屬性來判斷。從運行結果可以看出,HashSet集合中有完全相同元素,這表明兩個元素已經重復,但因為HashSet在添加它們時已經把它們添加到了不同地方,所以HashSet完全可以容納兩個相同元素。至于第一個count為-3的R對象,它保存在count為5的R對象對應的位置(地址)。當向HashSet中添加可變對象時,必須十分小心。如果修改HashSet集合中的對象,有可能導致該對象與集合中其他對象相等,從而導致HashSet無法準確訪問該對象。

HashSet還有一個子類LinkedHashSet,LinkedHashSet集合也根據元素hashCode值來決定元素存儲位置,但它同時使用鏈表維護元素的次序,即當遍歷LinkedHashSet集合元素時,HashSet將會按元素的添加順序來訪問集合里的元素。

3、TreeSet類

TreeSet是SortedSet接口的唯一實現,TreeSet可以確保集合元素處于排序狀態(元素是有序的)。

TreeSet提供的幾個額外方法:

  1. Comparator comparttor(): 返回當前Set使用的Compara投入,或者返回null,表示以自然方式排序。  
  2.  
  3. Object first():返回集合中的第一個元素。  
  4.  
  5. Object last():返回集合中的最后一個元素。  
  6.  
  7. Objiect lower(Object e):返回集合中位于指定元素之前的元素(即小于指定元素的最大元素,參考元素可以不是TreeSet的元素)。  
  8.  
  9. Object higher(Object e):返回集合中位于指定元素之后的元素(即大于指定元素的最小元素,參考元素可以不需要TreeSet的元素)。  
  10.  
  11. SortedSet subSet(fromElement, toElement):返回此Set的子集,范圍從fromElement(包含大于等于)到toElement(不包含小于)。  
  12.  
  13. SortedSet headSet(toElement):返回此Set的子集,由小于toElement的元素組成。  
  14.  
  15. SortedSet tailSet(fromElement):返回此Set的子集,由大于或等于fromElement的元素組成。 
  1. public class TestTreeSetCommon  
  2. {  
  3.     public static void main(String[] args)   
  4.     {  
  5.         TreeSet<Integer> nums = new TreeSet<Integer>();  
  6.         //向TreeSet中添加四個Integer對象  
  7.         nums.add(5);  
  8.         nums.add(2);  
  9.         nums.add(10);  
  10.         nums.add(-9);  
  11.         //輸出集合元素,看到集合元素已經處于排序狀態  
  12.         System.out.println(nums);  
  13.         //輸出集合里的第一個元素  
  14.         System.out.println(nums.first());  
  15.         //輸出集合里的最后一個元素  
  16.         System.out.println(nums.last());  
  17.         //返回小于4的子集,不包含4  
  18.         System.out.println(nums.headSet(4));  
  19.         //返回大于5的子集,如果Set中包含5,子集中還包含5  
  20.         System.out.println(nums.tailSet(5));  
  21.         //返回大于等于-3,小于4的子集。  
  22.         System.out.println(nums.subSet(-3 , 4));  
  23.     }  

說明:由運行結果可以看出,TreeSet并不是根據元素的插入順序進行排序,而是根據元素實際值來進行排序。TreeSet采用紅黑樹的數據結構對元素進行排序,具體排序內容會在后續文章中說明。

原文鏈接:http://www.cnblogs.com/zhxxcq/archive/2012/03/14/2395511.html

【編輯推薦】

  1. Java的位移運算巧方法
  2. Java7的一個新類JLayer:裝飾的Swing組件
  3. 關于Java中內存溢出的解決辦法
  4. Java中的面向對象特性
  5. 探究Java初始化的過程
責任編輯:林師授 來源: 星星傳奇的博客
相關推薦

2012-03-12 15:36:29

Java框架

2019-07-22 09:59:20

Java框架集合

2012-05-02 10:47:51

JavaJava集合框架

2021-04-12 07:34:03

Java集合框架

2015-09-11 09:40:35

Java集合框架

2011-04-14 09:30:15

集合框架

2011-07-11 11:02:12

JAVA集合框架

2012-04-26 10:52:52

Java數組集合

2009-06-29 16:50:27

Java集合框架

2023-10-09 07:57:14

JavaJCF

2021-03-11 07:27:22

Java 集合數據

2020-06-15 11:04:38

JavaScript 代碼JavaScript

2009-06-30 14:01:00

Java集合框架Java數組排序

2015-11-06 10:26:53

JavaExecutor框架

2015-12-24 10:13:29

JavaExecutor框架

2023-12-01 11:13:50

JavaTreeSet

2019-11-14 09:53:30

Set集合存儲

2010-06-11 17:10:02

Java框架開源

2015-09-11 09:17:55

JavaJava HashMa

2021-09-06 20:05:47

Python集合對象
點贊
收藏

51CTO技術棧公眾號

国产精品网友自拍| 欧美日一区二区三区在线观看国产免| 欧美在线你懂得| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 国产情侣激情自拍| 999亚洲国产精| 国产一区二区三区在线看| 免费黄频在线观看| 亚洲精品中文字幕| 专区另类欧美日韩| 欧美成人蜜桃| 国产国语亲子伦亲子| 日韩亚洲国产精品| 久久视频免费观看| 右手影院亚洲欧美| 警花av一区二区三区| 福利视频导航一区| 手机成人av在线| 三级视频网站在线| 国产一区二区三区香蕉| 国产成人小视频在线观看| 精品无码久久久久久久| 久久精品国产亚洲夜色av网站| 精品欧美一区二区在线观看| 日韩不卡一二三| 少妇淫片在线影院| 夜夜嗨av一区二区三区四季av| 欧美一进一出视频| 视频一区二区免费| 国产一区二区三区免费观看| 国产精品福利无圣光在线一区| 久久精品视频6| 亚洲精品网址| 伊人久久久久久久久久久| 久久久久久久无码| 91成人午夜| 欧美一级淫片007| 孩娇小videos精品| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲在线视频一区| 免费观看黄色的网站| 北岛玲一区二区三区| 26uuu精品一区二区在线观看| 99国产盗摄| 国产成人精品a视频| 国产综合色产在线精品| 国产噜噜噜噜噜久久久久久久久 | 免费特级黄色片| 在线观看免费国产视频| 欧美日韩1080p| 久久久精品一区二区| 亚洲欧美精品久久| 欧美综合在线视频观看| 亚洲天堂av高清| 久久午夜福利电影| 九色精品91| 亚洲视频欧洲视频| 免费观看a级片| 成人精品亚洲| 日韩在线激情视频| 欧美福利第一页| 欧美综合一区| 日韩在线观看免费高清| 美女三级黄色片| 自拍视频亚洲| 欧美黑人性生活视频| 国产在线综合网| 一区二区黄色| 国产精品久久久久久av| 亚洲在线观看av| 国产一区二区看久久| 亚洲一区二区三区乱码aⅴ| www.xxxx国产| 99国产精品久久久久| 日本一区视频在线播放| 欧美三级黄网| 一区二区不卡在线播放| 欧美日韩亚洲一| 国产在视频一区二区三区吞精| 欧美乱熟臀69xxxxxx| 日本黄色www| 久久资源综合| 国产亚洲精品美女| 国产精品 欧美激情| 亚洲国产一区二区三区a毛片| 国产91精品久久久久| 最近中文字幕在线观看视频| 国产在线精品一区二区夜色| 国产伦精品一区二区三区视频免费| 色视频在线看| 自拍偷拍国产亚洲| 伊人成色综合网| 国产第一亚洲| 欧美一级欧美三级在线观看| 亚洲一级av无码毛片精品| 国产亚洲欧美日韩在线观看一区二区| 久久天天躁狠狠躁老女人| 日韩乱码一区二区| 精品一二三四在线| 精品国产一二| 51xtv成人影院| 色妞www精品视频| 丰满少妇一区二区三区专区| 久草精品在线| 欧美精品久久久久a| 中文字幕免费播放| av电影在线观看一区| 在线视频精品一区| 在线女人免费视频| 欧美一级一区二区| 黄色激情小视频| 99精品福利视频| 91香蕉亚洲精品| 国产高清一级毛片在线不卡| 亚洲va欧美va人人爽| 国产毛片久久久久久| 国产精品密蕾丝视频下载| 久久久久久久国产| 国产情侣一区二区| 国产精品伦理一区二区| 国产激情在线观看视频| 超碰97久久国产精品牛牛| 久久视频在线观看免费| 小泽玛利亚一区二区三区视频| 激情亚洲另类图片区小说区| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 日韩在线欧美在线| 日本一区二区三区精品| 国产成人精品三级麻豆| 亚洲图片小说在线| 日本韩国欧美| 精品亚洲一区二区三区在线播放| 免费人成在线观看| 国产麻豆视频精品| 超碰97免费观看| 97色婷婷成人综合在线观看| 一本色道久久88亚洲综合88| 99超碰在线观看| 91免费国产在线观看| 水蜜桃色314在线观看| 日韩在线观看中文字幕| 久久综合久久八八| 国产毛片在线视频| 亚洲四区在线观看| 91欧美一区二区三区| 91精品天堂福利在线观看| 国产精品视频中文字幕91| 成在在线免费视频| 在线观看亚洲成人| 中文字幕伦理片| 青青青伊人色综合久久| 亚洲国产精品视频一区| 草民电影神马电影一区二区| 中文字幕亚洲一区在线观看| 在线视频 91| 国产精品久久久久久亚洲毛片| 亚洲色图 在线视频| 欧美亚洲高清| 国产剧情久久久久久| 国产激情视频在线| 日韩你懂的电影在线观看| 九九热精彩视频| 国产 日韩 欧美大片| 男人用嘴添女人下身免费视频| 男人的天堂久久| 国产精品av网站| 久久久久久国产精品免费无遮挡| 制服丝袜av成人在线看| 九九热精品在线观看| 99精品视频一区| 日韩一级免费在线观看| 99国产精品免费视频观看| 亚洲最大成人网色| 91黄页在线观看| 亚洲第一精品久久忘忧草社区| 天堂中文在线网| 亚洲国产精品黑人久久久| 色婷婷综合在线观看| 亚洲国产精品一区制服丝袜| 欧美日韩国产三区| 粉嫩av国产一区二区三区| 久久久亚洲成人| 啊v视频在线| 精品日产卡一卡二卡麻豆| 久久久精品免费看| 国产精品传媒在线| 白嫩情侣偷拍呻吟刺激| 日韩精品一二三四| 国产午夜精品视频一区二区三区| 日本午夜精品| 成人h视频在线观看播放| 麻豆成全视频免费观看在线看| 中文字幕日韩电影| 亚洲精品字幕在线观看| 欧美午夜电影一区| 国产第一页在线播放| 亚洲国产精品99久久久久久久久 | 久久久欧美精品sm网站| 香蕉视频xxx| 天堂成人国产精品一区| 欧美日韩激情四射| av一区二区在线观看| 国产伦精品一区二区三区高清| 成人国产一区| 97久久久久久| 羞羞的视频在线观看| 在线观看国产精品91| 国模私拍视频在线| 欧美精品1区2区| 国产精品va无码一区二区三区| 伊人性伊人情综合网| 战狼4完整免费观看在线播放版| 成人午夜激情视频| 操人视频免费看| 免费在线看成人av| 日韩精品一区二区三区不卡| 狠狠综合久久av一区二区老牛| 亚洲一区二区三区加勒比| 神马久久影院| 国产精品有限公司| 精品一区二区三区亚洲| 国产精品视频精品视频| 成人欧美一区二区三区的电影| 色综合久久88色综合天天看泰| 日本中文字幕视频在线| 亚洲视频在线免费看| 少妇人妻偷人精品一区二区| 日韩欧美一二区| 国产乱色精品成人免费视频| 91福利区一区二区三区| 国产免费观看av| 亚洲电影在线免费观看| 精品国产乱码久久久久久鸭王1| 中文字幕一区二区三区四区| 女人黄色一级片| 国产网红主播福利一区二区| 人妻丰满熟妇aⅴ无码| 成人午夜av在线| 无码人妻丰满熟妇区毛片蜜桃精品 | 日韩欧美一区免费| 欧洲精品久久| 欧美猛男男男激情videos| 麻豆成人av| 伊人久久大香线蕉av不卡| 久久久精品动漫| 精品影片在线观看的网站| 日本成人三级电影网站| 久久99免费视频| 亚洲精品二区| 91久久久精品国产| av动漫在线免费观看| 国产精品豆花视频| 全黄性性激高免费视频| 亚洲精品免费观看| 免费无码不卡视频在线观看| 国产农村妇女精品一区二区| 色综合av综合无码综合网站| 免费在线播放第一区高清av| 精品久久久久久久免费人妻| 免费人成精品欧美精品| 日本77777| 国产精品一区二区黑丝| 少妇被狂c下部羞羞漫画| 久久综合给合久久狠狠狠97色69| 亚洲久久久久久久| 国产精品久久久久久久久免费丝袜 | 黑人玩弄人妻一区二区三区| 99久久99久久精品免费看蜜桃 | 欧美日韩老妇| 亚洲免费av网| 在线观看视频免费一区二区三区| 99视频在线免费播放| 青青草视频一区| 一个人看的视频www| 99久久国产免费看| 国产馆在线观看| 亚洲夂夂婷婷色拍ww47| 六月丁香激情综合| 欧美人体做爰大胆视频| www.热久久| 亚洲免费高清视频| 麻豆tv免费在线观看| 久久久久久久久国产精品| 激情都市亚洲| 亚洲综合自拍一区| 国产传媒欧美日韩成人精品大片| 在线观看亚洲视频啊啊啊啊| 亚洲黄色影片| 日本激情综合网| 成人免费看的视频| 波多野结衣家庭教师在线观看| 一区二区三区四区五区视频在线观看 | 欧美视频免费在线| 97人人爽人人爽人人爽| 亚洲激情中文字幕| 好了av在线| 欧美一级片免费在线| 久久久久九九精品影院| 欧美精品一区二区三区在线四季| 欧美aa国产视频| 国产又大又黄又粗又爽| av福利精品导航| 蜜臀久久精品久久久用户群体| 91高清视频在线| 手机看片1024日韩| 久热精品在线视频| 成人黄色视屏网站| 精品久久久久久乱码天堂| 亚洲精品2区| 成人免费在线观看视频网站| www.亚洲色图.com| 久草网视频在线观看| 欧美三级电影精品| 日本v片在线免费观看| 欧美精品福利在线| 日韩欧美中文在线观看| 相泽南亚洲一区二区在线播放| 99精品视频网| 野战少妇38p| 亚洲精品写真福利| 亚洲天堂中文字幕在线| 国产偷国产偷亚洲清高网站| 99在线视频影院| 91超碰rencao97精品| 日韩一区二区在线| 青青在线免费观看视频| 久久丝袜美腿综合| 天天综合天天干| 亚洲国产精品字幕| 成人免费观看视频大全| 国产原创欧美精品| 色婷婷一区二区三区| 一区二区三区入口| 国产清纯美女被跳蛋高潮一区二区久久w | 欧洲视频在线免费观看| 91豆花精品一区| 久久aimee| 欧美亚洲黄色片| 成人做爰69片免费看网站| 538任你躁在线精品视频网站| 欧美喷潮久久久xxxxx| 99精品老司机免费视频| 国产精品狼人色视频一区| 国精一区二区| 美女一区二区三区视频| 亚洲国产激情av| 在线播放精品视频| 最近2019中文字幕第三页视频| 成人黄色视屏网站| 在线视频亚洲自拍| 久99久精品视频免费观看| 久久精品一区二区三区四区五区| 在线综合+亚洲+欧美中文字幕| 老司机精品影院| 91精品入口蜜桃| 亚洲青涩在线| 欧美多人猛交狂配| 欧美无砖砖区免费| 黄色的网站在线观看| 成人动漫在线视频| 一本一本久久| 91激情视频在线观看| 欧美嫩在线观看| 女同视频在线观看| 免费国产一区二区| 蜜臀国产一区二区三区在线播放| 美女福利视频网| 日韩一卡二卡三卡| 免费v片在线观看| 丝袜足脚交91精品| 国产成人精品亚洲午夜麻豆| 日韩精品在线观看免费| 永久免费看mv网站入口亚洲| 婷婷激情成人| www.日本在线视频| 久久久久久久久久久电影| 中文字幕乱码视频| 欧美丰满少妇xxxxx| 精品一区亚洲| 在线观看网站黄| 欧美视频一区二区三区…| 91看片在线观看| 国产精品日韩一区二区| 日韩制服丝袜av| 日本aⅴ在线观看| 日韩av中文字幕在线播放| 日本午夜免费一区二区| www精品久久| 中文字幕中文在线不卡住| 少妇高潮久久久| 国产在线拍偷自揄拍精品| 亚洲国产高清视频| 特黄一区二区三区| 亚洲福利视频久久| 亚洲精品66| 亚洲国产精品久久久久爰色欲| 亚洲人成在线播放网站岛国| 青青操在线视频| 成人黄色在线免费观看| 美女一区二区视频|