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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[轮子系列]Google Guava之CharMatcher源码分析

發布時間:2023/12/15 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [轮子系列]Google Guava之CharMatcher源码分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文源地址:http://www.fullstackyang.com/...,轉發請注明該地址或segmentfault地址,謝謝!

最近遇到了一些字符匹配的需求,進而仔細地看了CharMatcher的源碼,發現還是有點東西值得回味,例如它為我們提供了如何在多種字符類型場景下提高靈活性從而滿足不同匹配需求的優秀示范。下面就對CharMatcher類的結構,設計模式,以及幾個算法做一些粗淺的分析。

一、關于源碼中的彩蛋

CharMatcher類中,開頭部分有一張寵物小精靈“小火龍”的字符畫,就像本文的封面圖一樣,一開始不解為何要放一只“小火龍”在這里,后來看到其英文名Charmander才明白過來。好吧,諧音梗……略冷。

二、類的結構和關系

下圖是CharMatcher的類關系圖,圖中藍色的是abstract類,紅色的是final類

首先CharMatcher修飾為abstract,其中只有一個abstract方法matches,即判斷給定字符是否匹配,以及一些其他的常用操作(它們的功能從方法名可以得知,這里就不一一介紹了,下文會選其中的一些做分析),此外還有三個用于組合的方法:negate、or、and。

public abstract boolean matches(char c);public int indexIn(CharSequence sequence) // 查找匹配字符首次出現的索引位置public int countIn(CharSequence sequence) // 對匹配的字符計數public String retainFrom(CharSequence sequence) // 抽取匹配的字符public CharMatcher negate() // 取反public CharMatcher and(CharMatcher other) // 與public CharMatcher or(CharMatcher other) // 或...

如上圖所示,CharMatcher類有很多的子類,一部分是直接繼承于父類,一部分是繼承于FastMatcher,另外還有繼承于Negated和RangeMatcher。子類通過實現matches方法或重寫其他父類的方法,從而提供了各種不同的具體操作,如Is(判斷是否為某一個字符),Digit(判斷是否為數字字符),Ascii(判斷是否為ASCII字符)等。
再來說說其中一個比較重要的子類——FastMatcher,它和CharMatcher的主要區別在于,FastMatcher取消了父類中相對復雜的precomputed方法,其注釋寫道,這個方法可以得到一個處理速度更快的實例,但是執行該方法本身需要花費一定時間,所以只有在需要頻繁調用的情況下,這樣做才比較劃算。
至于這個方法的奧秘在于,它使用BitSet作為存儲字符的數據結構,然后遍歷所有的字符(Character.MIN_VALUE~Character.MAX_VALUE),根據matches方法放入這個BitSet中,最后根據這個BitSet中1的數量生成其他類型的CharMatcher實例,包括None,Is,IsEither,SmallCharMatcher(一個單獨的子類)以及BitSetMatcher,這樣就避免了頻繁調用過程中,(特別是復雜組合的情況)執行不必要實例化操作,而是直接歸約到某一個類的實例上。
而上述那5個類正是繼承于FasterMatcher(或NamedFasterMatcher)。

三、設計模式

上一節說到CharMatcher提供很多子類,為了較好地管理和使用這些類,CharMatcher對外提供了基于內部類的靜態工廠方法或者單例模式來獲得某個實例,舉例來說:

  • 靜態工廠方法
public static CharMatcher is(final char match) {return new Is(match); }private static final class Is extends FastMatcher {private final char match;Is(char match) {this.match = match;}...} 使用靜態工廠方法的好處,這點在《Effective Java》一書中有詳細的介紹
  • 單例模式
public static CharMatcher ascii() {return Ascii.INSTANCE; }private static final class Ascii extends NamedFastMatcher {static final Ascii INSTANCE = new Ascii();Ascii() {super("CharMatcher.ascii()");}... }

這樣我們就可以很方便地獲得一個實例,并對相應的字符類型做處理,比如抽取字符串中所有的數字

CharMatcher.inRange('0', '9').retainFrom("abc12d34ef"); // 當然也可以用Digit類,不過最近的版本已經被標記為Deprecated // 區別在于Digit類處理了字符0到9的各種unicode碼,不過大多數情況還是處理ASCII數字,所以建議使用inRange CharMatcher.digit().retainFrom("abc12d34ef"); // 1234

當然也可以通過negate/or/and產生一些復雜的組合:

CharMatcher.inRange('0','9').or(CharMatcher.is('d')).retainFrom("abc12d34ef"); // 12d34

另外還有一個ForPredicate的子類,它接收Predicate對象作為參數,然后用Predicate的apply方法來實現matches方法,這樣就用lamda表達式創建一些實例了,例如:

CharMatcher.inRange('0', '9').or(CharMatcher.is('d')).or(CharMatcher.forPredicate(c -> c <= 'b' || c > 'e')).retainFrom("abc12d34ef"); // ab12d34f

四、算法分析

  • collapseFrom方法,如代碼注釋所示,把一個字符串中匹配到的(連續)部分替換為給定的字符,
//CharMatcher.anyOf("eko").collapseFrom("bookkeeper", '-') returns "b-p-r" public String collapseFrom(CharSequence sequence, char replacement) {// This implementation avoids unnecessary allocation.int len = sequence.length();for (int i = 0; i < len; i++) {char c = sequence.charAt(i);if (matches(c)) {if (c == replacement && (i == len - 1 || !matches(sequence.charAt(i + 1)))) {// a no-op replacementi++;} else {StringBuilder builder = new StringBuilder(len).append(sequence, 0, i).append(replacement);return finishCollapseFrom(sequence, i + 1, len, replacement, builder, true);}}}// no replacement neededreturn sequence.toString(); }private String finishCollapseFrom(CharSequence sequence,int start,int end,char replacement,StringBuilder builder,boolean inMatchingGroup) {for (int i = start; i < end; i++) {char c = sequence.charAt(i);if (matches(c)) {if (!inMatchingGroup) {builder.append(replacement);inMatchingGroup = true;}} else {builder.append(c);inMatchingGroup = false;}}return builder.toString(); } 事實上,CharMatcher里面的算法基本上都和這個差不多程度。

正如注釋部分所述,這個算法沒有分配不必要的空間。遍歷過程中當發現當前字符滿足匹配條件,這時再做一次判斷,如果當前字符本身就是所需要替換的字符replacement,那么這種情況是不需要進行替換操作(感覺可以直接用一個if(c != replacement)換掉else,并不需要i++的操作),否則將i之前的字符拼上replacement形成一個“半成品”傳入finishCollapseFrom,在該方法中利用了一個布爾值inMatchingGroup來控制是否需要拼接replacement,當發現滿足匹配條件時,再檢查inMatchingGroup是否為false,它表示上一輪拼接的不是replacement,以保證返回的結果中不會出現兩個以上連續的replacement。

  • Whitespace.matches 即判斷該字符是否為空白字符,包括空格,換行等
static final class Whitespace extends NamedFastMatcher {static final String TABLE ="\u2002\u3000\r\u0085\u200A\u2005\u2000\u3000"+ "\u2029\u000B\u3000\u2008\u2003\u205F\u3000\u1680"+ "\u0009\u0020\u2006\u2001\u202F\u00A0\u000C\u2009"+ "\u3000\u2004\u3000\u3000\u2028\n\u2007\u3000";static final int MULTIPLIER = 1682554634;static final int SHIFT = Integer.numberOfLeadingZeros(TABLE.length() - 1);static final Whitespace INSTANCE = new Whitespace();@Overridepublic boolean matches(char c) {return TABLE.charAt((MULTIPLIER * c) >>> SHIFT) == c;} }

這個算法本身很簡單,即TABLE字符串中是否存在同樣的字符c,巧妙的是它的定位方式。
先說明Integer.numberOfLeadingZeros這個方法返回的是該int變量二進制開頭部分連續的零的個數。TABLE的長度為32,故SHIFT的值為27,也就是說,通過字符c和某一個乘子的乘積(超出int范圍之后取低32位)向右移動27位得到的數值,即為TABLE的下標索引,例如字符'u2002'其值為8194,它和1682554634的乘積再右移27位得到0,而TABLE第0個字符就是'u2002',則判定相等,字符'u3000'的值為12288,應用相同算法得到26,TABLE第26個字符也是'u3000',同樣判定相等。由此可以看出,1682554634這個魔數和TABLE是刻意設計成這樣的。但是源碼中沒有解釋如何生成,在GitHub上倒是也有人這么問過,Guava owner回復說道:他們確實有一個生成器,但是由于一些依賴的原因,并沒有開源出來。其實如果不考慮性能,我們可以用最簡單的暴力法生成乘子和TABLE,代碼如下:

@Testpublic void test() {// 去掉table中重復的字符String WHITE = "\u2002\r\u0085\u200A\u2005\u2000"+ "\u2029\u000B\u2008\u2003\u205F\u1680"+ "\u0009\u0020\u2006\u2001\u202F\u00A0\u000C\u2009"+ "\u2004\u2028\n\u2007\u3000";char[] chars = WHITE.toCharArray();char filler = chars[chars.length - 1];char[] table = new char[32];int shift = Integer.numberOfLeadingZeros(WHITE.length());for (int i = 0; i <= Integer.MAX_VALUE; i++) {Arrays.fill(table, filler);//先用最后一個字符填充整個tableboolean conflict = false;for (char c : chars) {int index = (i * c) >>> shift;//如果當前字符為填充字符,則覆蓋填充字符,否則跳過if (table[index] != filler) { conflict = true;continue;}table[index] = c;}if (conflict)continue;System.out.println("MULTIPLIER: " + i);System.out.println("TABLE:" + new String(table));}}

上面可以得到多種MULTIPLIER和TABLE的結果。當然,反推過程比較簡單粗暴,一定有更優雅更高效的實現方式。不過這里想要表達的是,它本身是一個簡單的查找算法,通常的復雜度為O(logn),這里巧妙通過映射函數,將字符映射為字符串下標索引,使得時間復雜度為O(1),不得不佩服Guava開發者們追求極致的精神。

  • removeFrom方法,即在給定字符串中,刪除其匹配的部分
// CharMatcher.is('a').removeFrom("bazaar") returns "bzr" public String removeFrom(CharSequence sequence) {String string = sequence.toString();int pos = indexIn(string);if (pos == -1) {return string;}char[] chars = string.toCharArray();int spread = 1;// This unusual loop comes from extensive benchmarkingOUT:while (true) {pos++;while (true) {if (pos == chars.length) {break OUT;}if (matches(chars[pos])) {break;}chars[pos - spread] = chars[pos];pos++;}spread++;}return new String(chars, 0, pos - spread);}

比較詭異的是,它使用了兩層while循環,以及break [lable]的語法(這種用法并不多見,可以理解為goto語句的改良形式,可以方便地跳出多層循環),不過在內層循環時同樣也做了pos++的操作,本質上還是O(n)的時間復雜度,算法思想是char數組的位移操作,每次匹配到一個字符時,spread就自增,其他情況則每個數組元素向前移動,具體來說,spread的作用相當于對匹配到的字符進行計數,匹配到1個元素,pos指向的元素及其之后的元素向前移動1步以覆蓋掉上一輪命中的字符,匹配到2個元素,pos執行的元素及其之后的元素向前移動2步,以覆蓋上一次移動留下的空位和上一輪命中的字符,依次類推。最終利用String的構造函數(第二個參數是offset,即初始的偏移位置,第三個參數count,即所需長度)返回正確的字符串。
做個對比,我們以Apache commons lang3中的StringUtils作為比較對象,其對應的實現基于Matcher(java.util.regex)的replaceAll方法,亦即將匹配的字符替換為空字符串,整個遍歷的過程中重復調用了find()方法,該方法查找當前字符串中匹配的字符,它每次都需要從頭進行搜索,因此時間復雜度為O(n^2),這樣就比較費時了。

五、其他

在CharMatcher羅列多種字符的不同Unicode碼,如果你在其他的工作場景下需要用的這些unicode,可以參考一下CharMatcher。

  • 數字字符
private static final String ZEROES ="0\u0660\u06f0\u07c0\u0966\u09e6\u0a66\u0ae6\u0b66\u0be6\u0c66\u0ce6\u0d66\u0de6"+ "\u0e50\u0ed0\u0f20\u1040\u1090\u17e0\u1810\u1946\u19d0\u1a80\u1a90\u1b50\u1bb0"+ "\u1c40\u1c50\ua620\ua8d0\ua900\ua9d0\ua9f0\uaa50\uabf0\uff10"; 如果要獲得其他數字的unicode,就直接對應加上對應的數值
  • 空白字符
static final String TABLE ="\u2002\u3000\r\u0085\u200A\u2005\u2000\u3000"+ "\u2029\u000B\u3000\u2008\u2003\u205F\u3000\u1680"+ "\u0009\u0020\u2006\u2001\u202F\u00A0\u000C\u2009"+ "\u3000\u2004\u3000\u3000\u2028\n\u2007\u3000";
  • 不可見字符
private static final String RANGE_STARTS ="\u0000\u007f\u00ad\u0600\u061c\u06dd\u070f\u08e2\u1680\u180e\u2000\u2028\u205f\u2066"+ "\u3000\ud800\ufeff\ufff9"; private static final String RANGE_ENDS = // inclusive ends"\u0020\u00a0\u00ad\u0605\u061c\u06dd\u070f\u08e2\u1680\u180e\u200f\u202f\u2064\u206f"+ "\u3000\uf8ff\ufeff\ufffb";
  • 單字節長度字符
"\u0000\u05be\u05d0\u05f3\u0600\u0750\u0e00\u1e00\u2100\ufb50\ufe70\uff61" "\u04f9\u05be\u05ea\u05f4\u06ff\u077f\u0e7f\u20af\u213a\ufdff\ufeff\uffdc" 中文字符就是雙字節長度

總結

以上是生活随笔為你收集整理的[轮子系列]Google Guava之CharMatcher源码分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

久久人人97超碰com | 伊人五月天婷婷 | 国产精品美女久久久久久久网站 | 夜夜操狠狠操 | 国产日韩欧美在线影视 | 亚洲精品99久久久久久 | 日韩欧美精品在线视频 | 久久久久久久久久久久久久电影 | 色福利网| 五月婷婷另类国产 | 伊人黄色网 | 青春草免费视频 | 亚洲精品456在线播放第一页 | 日产av在线播放 | 亚洲激情校园春色 | 国产精品女人网站 | 99久久婷婷国产精品综合 | 亚洲成人av电影在线 | 丝袜美腿av| 色综合网在线 | 日躁夜躁狠狠躁2001 | av不卡中文| 国产精品露脸在线 | 国产一区二区三区免费在线 | 日本久久久久久科技有限公司 | 黄色毛片大全 | 激情婷婷欧美 | 国产精品一区二区免费看 | 少妇高潮冒白浆 | 国产精品对白一区二区三区 | 最近免费中文字幕mv在线视频3 | 国产精品日韩欧美一区二区 | 久久99久久99精品免观看粉嫩 | 中文字幕免费在线看 | 日本视频久久久 | 天天综合网 天天 | 中文字幕在线观看你懂的 | 最新99热 | 在线观看91久久久久久 | 久久精品视频在线观看免费 | 久久成人国产 | 亚洲精选99 | 激情五月播播久久久精品 | 探花视频在线观看免费 | www.久久久com| 国产精品大全 | 国产美女无遮挡永久免费 | 中文字幕之中文字幕 | 久久久人人人 | 江苏妇搡bbbb搡bbbb | 色就干| 精品国模一区二区三区 | 国产中文字幕一区二区三区 | 西西人体4444www高清视频 | 欧美日韩二区三区 | 又黄又爽又湿又无遮挡的在线视频 | h视频在线看| 亚洲涩涩一区 | 69欧美视频| 中文字幕一区在线 | 久久综合九色综合欧美狠狠 | 日韩精品亚洲专区在线观看 | 精品一区二三区 | 日韩免费三区 | 国产丝袜 | 婷婷色在线资源 | 亚洲三区在线 | av丝袜在线| 久久精品牌麻豆国产大山 | 四虎国产视频 | 久久久久国产一区二区三区四区 | 五月天精品视频 | 欧美激精品 | 亚洲一区在线看 | 久久精品男人的天堂 | 国产成人333kkk| 国产日韩欧美在线 | 亚洲高清资源 | 亚洲黄色app | 久久日韩精品 | 欧美日韩亚洲在线 | 香蕉成人在线视频 | 激情欧美一区二区三区免费看 | 操操操夜夜操 | 成人av动漫在线 | 五月婷婷激情 | av免费黄色 | 欧美国产一区在线 | 国产精品对白一区二区三区 | 毛片区| 草久在线视频 | 91欧美国产 | 婷婷综合网 | 91精品久久久久久综合乱菊 | 网站免费黄色 | 日韩中文久久 | 国产精品一区二区三区观看 | 美女视频网站久久 | 麻豆精品在线视频 | 狠狠ri| 婷婷 综合 色 | 免费在线观看午夜视频 | 久久久受www免费人成 | 国产大陆亚洲精品国产 | 成人aⅴ视频 | 免费av电影网站 | 激情综合五月天 | 99久久日韩精品免费热麻豆美女 | 在线激情电影 | 激情网站免费观看 | 日日草夜夜操 | 成人97人人超碰人人99 | 欧美一级片免费观看 | 在线免费观看黄网站 | 国产成人av电影在线 | 国产精品久久久久久久久久久久冷 | 99在线热播精品免费99热 | 日一日操一操 | 精品久久免费 | 五月天六月婷 | 久久综合久色欧美综合狠狠 | 人人要人人澡人人爽人人dvd | 精品99久久| 99色在线播放 | 亚洲一级电影视频 | 欧美一区二区在线免费看 | 97视频在线免费播放 | 99精品视频在线观看 | 狠狠干狠狠色 | 国产成人精品一区二区在线观看 | 国产不卡在线观看 | 97在线视频观看 | 中文字幕首页 | 91av视频免费在线观看 | 91丨九色丨91啦蝌蚪老版 | 国产黄a三级 | 国产免费又黄又爽 | 又黄又刺激的视频 | 日韩毛片在线一区二区毛片 | 免费看片在线观看 | 国产在线国产 | 国产免费国产 | 白丝av在线 | 国产在线91在线电影 | 亚洲午夜久久久久久久久电影网 | 热re99久久精品国产99热 | 亚洲午夜精品在线观看 | 国产日韩在线视频 | 国产精品不卡 | www国产亚洲精品 | 激情五月婷婷综合网 | 探花视频在线观看+在线播放 | 五月婷婷电影网 | 成 人 黄 色 视频免费播放 | 亚洲视频电影在线 | 免费网站在线观看成人 | 国产91精品久久久久久 | 视频91 | 在线天堂中文www视软件 | 久久天天操 | 婷婷综合五月 | 欧美成人精品在线 | 久久一区国产 | 成人在线观看免费视频 | 国产婷婷色 | 久久久91精品国产 | 在线观看亚洲国产精品 | 婷婷社区五月天 | 深爱激情五月综合 | 极品中文字幕 | 97操操| 中文字幕91在线 | 91精品一区在线观看 | 九九精品视频在线看 | 久草在线视频资源 | 欧美动漫一区二区三区 | 免费黄av | 国产 视频 高清 免费 | 青草视频网 | 国产美女视频 | 国产做爰视频 | 久久视频免费看 | 国产日产精品一区二区三区四区的观看方式 | 黄色大片免费播放 | 99久久婷婷国产综合精品 | 五月天亚洲激情 | 亚洲区另类春色综合小说 | 亚洲精品av在线 | 国产免费观看久久黄 | 久久久久99精品成人片三人毛片 | 国产日韩欧美在线观看 | 中文字幕在线免费观看 | 日韩av成人 | 激情偷乱人伦小说视频在线观看 | 国产精品国产三级在线专区 | 国产亚洲小视频 | 色开心 | 免费人成在线观看网站 | 日韩中文字幕免费在线观看 | 日韩在线免费小视频 | 国产91精品看黄网站在线观看动漫 | 毛片永久免费 | 最近最新中文字幕 | 免费av免费观看 | 亚洲精品成人在线 | 色综合婷婷 | 免费日韩av电影 | 丁香 婷婷 激情 | 午夜在线观看一区 | 天天天干天天射天天天操 | 久久av免费电影 | 波多野结衣最新 | 日韩激情在线视频 | 免费在线观看视频a | 久久免费看 | 国产精品手机视频 | 免费一级日韩欧美性大片 | 婷婷激情五月综合 | 欧美日韩不卡在线 | 精品国产伦一区二区三区观看体验 | 国产精品久久久久久久久免费看 | 中文字幕在线观看第二页 | 婷婷色在线观看 | 人人插人人艹 | 久久精品中文字幕免费mv | 91香蕉视频720p | 亚洲美女精品区人人人人 | 国产色秀视频 | bayu135国产精品视频 | 综合色中色 | 亚洲精品自在在线观看 | 免费午夜网站 | 国产精品久久久久久久久免费看 | 久久高清免费观看 | 欧美巨乳波霸 | 夜夜爽88888免费视频4848 | 亚洲午夜激情网 | 中文字幕a在线 | 日韩免费看视频 | 91精品久久香蕉国产线看观看 | 国产群p视频 | 国产精品精品国产 | 狠狠躁夜夜躁人人爽超碰91 | 国产一级黄色电影 | 天天做天天爱天天爽综合网 | 国产v亚洲v| 欧美日韩精品影院 | 日韩va欧美va亚洲va久久 | 国产视频 久久久 | 伊人网综合在线观看 | 国产黄色免费 | 高清一区二区三区av | 日韩久久久 | 911久久香蕉国产线看观看 | 成 人 黄 色 视频免费播放 | 91在线最新 | 999电影免费在线观看 | 日韩欧美极品 | 天天操天天操天天操天天操天天操天天操 | 91av电影在线观看 | 免费色视频 | 韩国一区二区在线观看 | 日韩乱色精品一区二区 | 免费看的黄色的网站 | 亚洲一区不卡视频 | 福利二区视频 | 久久激情视频网 | 日韩精品一区二区在线 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产成人在线精品 | 午夜黄色影院 | 日韩a在线观看 | 亚洲国产精品视频在线观看 | 国产精品一区二区三区四区在线观看 | 国产精品久久久久影院 | 欧美视频日韩视频 | 天天操天天干天天摸 | 国产视频 亚洲视频 | 丁香综合激情 | 免费99视频 | 91免费的视频在线播放 | 五月天婷亚洲天综合网精品偷 | 成人小视频在线免费观看 | 91免费版在线观看 | 色偷偷88欧美精品久久久 | 97人人澡人人爽人人模亚洲 | 一区二区三区在线免费观看视频 | 久久国产色| 国产美女黄网站免费 | av观看免费在线 | 久久欧美精品 | 国产精品久久久久久久免费 | 久久只有精品 | 成年人国产视频 | 免费av网址在线观看 | 日日操日日插 | 在线观看视频你懂 | 国产视频999 | 999久久国产 | 久久精品系列 | 午夜久草 | 久久免费在线观看 | 久久私人影院 | 中文字幕资源网在线观看 | 欧美网址在线观看 | 国产精品3区| 国产精品高 | 久久久免费毛片 | 免费色视频在线 | 亚洲精品中文字幕视频 | 久久久99久久 | 天天综合中文 | 97国产超碰在线 | 国内少妇自拍视频一区 | 91精品视频免费在线观看 | 色播六月天 | 国产黄色一级片 | 玖玖爱在线观看 | 91理论片午午伦夜理片久久 | 亚洲综合黄色 | 午夜精品久久久久久久久久久久久久 | 国产一级二级在线播放 | 91麻豆精品 | 在线观看视频h | 久精品在线| 伊人色综合网 | 欧美成人一区二区 | 亚洲精品影视在线观看 | 最近日本字幕mv免费观看在线 | 91精品国产一区二区在线观看 | 毛片网站在线 | 免费三级黄色片 | 久久国产精品久久久 | 日韩精品中文字幕有码 | 欧美日韩一级久久久久久免费看 | 国产欧美精品xxxx另类 | 九九九国产 | 国产伦精品一区二区三区免费 | 99久久精品国产网站 | 国产成人精品av | 天天操狠狠操 | av官网| 欧美日本高清视频 | 九九激情视频 | 久久a级片 | 国产一区二区免费看 | 国产成人高清av | 91在线播放国产 | 一区二区精品视频 | 黄色免费高清视频 | 日日插日日干 | 亚洲精品国产精品国 | 精品一区在线 | 中文字幕在线一区观看 | 手机av在线不卡 | 久久久不卡影院 | 99精品国产福利在线观看免费 | 亚洲最大av在线播放 | 国产伦精品一区二区三区无广告 | 国产小视频在线 | 久久久久久久久久久成人 | 亚洲综合五月天 | 国产在线黄 | 97av视频| 开心丁香婷婷深爱五月 | 国产精品午夜在线观看 | 国产黄色一级大片 | 一区 二区 精品 | 免费视频资源 | 色视频国产直接看 | 国产青春久久久国产毛片 | 久久国产手机看片 | 在线不卡a | 六月久久婷婷 | 免费看三级 | 精品国产美女在线 | 精品久久久久国产免费第一页 | 亚洲日本精品视频 | 天天躁日日躁狠狠躁 | 国内外成人免费在线视频 | 免费视频你懂的 | 中文国产字幕 | 日韩电影一区二区在线 | 字幕网av | 在线 视频 亚洲 | 国产区免费在线 | 国产裸体无遮挡 | 四虎影视www | 中文在线免费一区三区 | 婷婷激情五月综合 | 最近中文字幕在线中文高清版 | 成人h电影| 91精品国产乱码久久桃 | 久久人人添人人爽添人人88v | 亚洲欧洲精品久久 | 91精品在线观看入口 | 欧美嫩草影院 | 久久99精品国产一区二区三区 | 欧美aaa视频 | 狠狠狠狠狠狠狠干 | 国产综合精品一区二区三区 | 人人爽久久涩噜噜噜网站 | 欧美a√大片| 亚洲最新合集 | av综合网址 | 久久艹免费 | 一区二区三区免费播放 | 天天干夜夜干 | 日韩三级免费 | avwww在线观看 | 欧美精品九九 | 久久精品播放 | 五月天开心 | 成人精品福利 | 中文字幕亚洲精品在线观看 | 免费网站在线观看成人 | 国产精品破处视频 | 亚洲精欧美一区二区精品 | 九九热视频在线免费观看 | 日韩久久久久久 | 国产色网站| 成人av电影免费在线观看 | 成 人 黄 色 免费播放 | av手机在线播放 | av黄色在线观看 | 久久成人18免费网站 | 激情视频91| 免费看的黄网站 | 国产只有精品 | 精品亚洲一区二区 | 99久久婷婷国产综合精品 | 在线视频电影 | 黄色av三级在线 | 91香蕉视频黄色 | 97视频在线看 | 久久久伊人网 | 亚洲国产精品一区二区久久hs | 99精品视频在线观看免费 | 欧美日韩国产高清视频 | 久久999精品 | 在线只有精品 | 国产专区在线视频 | 91大神电影 | 国产剧情在线一区 | 黄色av影院 | 日韩小视频网站 | 亚洲 欧洲 国产 日本 综合 | 特级aaa毛片| 久久精品99国产国产精 | 精品亚洲视频在线 | 日韩av免费网站 | 国产不卡一二三区 | 天天做天天爱夜夜爽 | 免费合欢视频成人app | 久久激情片 | 九九在线精品视频 | 91在线免费视频观看 | 91av视频在线免费观看 | 一级片免费观看视频 | 婷婷激情综合 | 久久精品8 | 激情小说网站亚洲综合网 | 中文字幕av在线电影 | 99福利片| 日韩精品视频免费在线观看 | 亚洲欧美日韩精品久久久 | 狠狠狠的干 | 国产精品com | 午夜精品一二三区 | 狠狠狠色| 久久久久日本精品一区二区三区 | 欧美特一级 | 国产一性一爱一乱一交 | 青青草国产精品视频 | 久久乐九色婷婷综合色狠狠182 | 精品在线一区二区三区 | 91久久精品一区二区三区 | www五月天| 四虎成人精品永久免费av九九 | 成人在线视频在线观看 | 久久久久久久电影 | 免费电影播放 | 国产精品欧美久久久久三级 | 五月天久久婷 | 99色亚洲| 国产黄色免费在线观看 | a电影在线观看 | 精品一区二区综合 | 黄色小说在线免费观看 | 欧美乱熟臀69xxxxxx | 7777xxxx | 国产色妞影院wwwxxx | 亚洲精品乱码久久久久久蜜桃动漫 | 久久天天躁夜夜躁狠狠85麻豆 | 天天综合网久久综合网 | 人人插人人舔 | 中文字幕色站 | 日本在线观看中文字幕无线观看 | 91毛片在线 | 中文字幕一区二区三区在线观看 | 97狠狠干| av片中文| 国产美女视频 | 亚洲欧洲精品一区二区精品久久久 | 91最新在线观看 | 国产一区二区在线视频观看 | 美女免费电影 | 福利一区在线视频 | 亚洲激情av | 国产视频欧美视频 | www.在线观看av | 日批视频在线 | 黄色的视频网站 | 激情五月婷婷综合网 | 欧美9999 | 日本久久久久久 | 婷婷电影网| 在线观看小视频 | 四虎影视成人永久免费观看视频 | 久久成电影 | 97超碰超碰 | 中文字幕亚洲高清 | 久久综合九色综合网站 | a视频免费 | 久草在线免费播放 | 精品国自产在线观看 | 91九色成人蝌蚪首页 | 狠狠色伊人亚洲综合成人 | 天天综合日| 欧洲高潮三级做爰 | 91成品视频 | avcom在线| 超级碰碰视频 | 91九色国产蝌蚪 | 精品国产一区二区三区蜜臀 | 久久久久久久网 | 成人久久18免费网站图片 | 天天爱天天射 | 精品高清美女精品国产区 | 日韩av免费一区 | 天天色综合1 | 99视频免费在线观看 | 毛片基地黄久久久久久天堂 | 国产精品白浆视频 | 久草在线久 | 韩国在线视频一区 | 亚洲春色奇米影视 | 在线看国产视频 | 激情中文在线 | 在线激情av电影 | 五月婷婷久久丁香 | 免费网站黄 | 激情综合一区 | 粉嫩av一区二区三区免费 | 国产小视频91 | 成人精品影视 | 91av在线视频播放 | 亚洲日韩欧美视频 | 97精品超碰一区二区三区 | 国产成人精品免费在线观看 | 亚洲成人家庭影院 | 涩涩网站在线看 | 999免费视频 | 日韩在线视频一区 | 久草免费在线视频 | 欧美污在线观看 | 日日爽日日操 | 中文字幕你懂的 | 久草在线最新免费 | 激情影音先锋 | 色综合久久综合网 | 一区二区三区在线观看 | 日韩黄色一区 | 97精品久久人人爽人人爽 | 在线观看亚洲精品视频 | 欧美成a人片在线观看久 | 美女视频黄是免费的 | 人人干在线观看 | 天天干夜夜操视频 | 久久国产影视 | 五月天激情在线 | 午夜色站| 天天干天天天天 | 国产高清免费av | 国产午夜视频在线观看 | 亚洲人成免费 | 亚洲精品中文字幕在线观看 | 西西444www高清大胆 | 六月激情婷婷 | 欧美精品一区二区免费 | 日精品| 久久91久久久久麻豆精品 | 丁香婷婷色综合亚洲电影 | 黄色影院在线观看 | 波多在线视频 | 91av视频观看 | 亚洲国产资源 | 欧美精品xxx | 黄色软件视频大全免费下载 | 亚洲资源在线网 | 国产精品免费久久 | 97国产大学生情侣酒店的特点 | 丝袜美女在线观看 | 久久免费视频这里只有精品 | 国产无限资源在线观看 | 麻豆视频免费观看 | 日韩和的一区二在线 | 欧美国产日韩一区二区 | www.av在线.com | 国产亚洲免费观看 | 亚洲丝袜中文 | 久久久久久久久久久综合 | 日韩网站在线 | 日韩精品视频免费 | japanesefreesexvideo高潮| 最近免费在线观看 | 亚洲欧洲成人 | 日韩精品一区二区三区外面 | 国产一级在线免费观看 | 免费网站观看www在线观看 | 色综合天天干 | 中文字幕精品一区久久久久 | 一区二区三区手机在线观看 | 日日夜日日干 | 免费看色的网站 | 亚洲成a人片77777潘金莲 | 国内精品久久天天躁人人爽 | 少妇性色午夜淫片aaaze | 日韩av高潮 | 久久亚洲婷婷 | av免费网页 | 久草视频在线资源站 | 深夜福利视频一区二区 | 国产黄色看片 | 天天色影院 | 国语自产偷拍精品视频偷 | 毛片网站在线看 | 日韩av综合网站 | 国产精品国产三级国产aⅴ入口 | 91免费在线看片 | 久草成人在线 | 香蕉色综合| 在线观看日本高清mv视频 | 久久一区91 | 五月婷激情 | 亚洲精品影视在线观看 | 97在线看片 | japanesexxxhd奶水| 久久国产视频网站 | 久久在现 | 久久久99精品免费观看乱色 | 国产精品久久久一区二区三区网站 | 国产高清在线 | av福利第一导航 | 国产韩国日本高清视频 | 亚洲国产成人在线 | 中文字幕乱码电影 | 精品福利在线 | 亚洲欧洲精品一区二区 | 国产精品美女免费看 | 精品美女久久久久久免费 | 国产一二区视频 | 九九九热 | 国产精品久久久久久高潮 | 玖玖视频 | 国产91影院 | 亚洲精品看片 | 免费在线电影网址大全 | 国产精品日韩久久久久 | 国产在线超碰 | 婷婷在线观看视频 | 亚洲视频在线看 | 成人精品视频久久久久 | 91大神精品视频 | 国产精品成人在线 | 免费黄色激情视频 | 摸bbb搡bbb搡bbbb | 国产精品三级视频 | 一区二区电影在线观看 | 狠狠亚洲| 日韩一级成人av | 粉嫩av一区二区三区免费 | 国产一区二区三区高清播放 | 成 人 a v天堂 | 五月天婷亚洲天综合网精品偷 | 欧美巨乳网 | 久久久精品日本 | 国产精品一区二区中文字幕 | 日本精品在线看 | 日韩中文字幕a | 精品视频免费久久久看 | 久久久久欧美精品 | 久久视频二区 | 又爽又黄在线观看 | 99久高清在线观看视频99精品热在线观看视频 | 香蕉视频在线免费 | 欧美91片 | 色婷婷成人网 | 国产私拍在线 | 美女精品久久久 | 午夜视频在线观看一区二区三区 | 国产精彩视频一区二区 | 免费碰碰 | 日韩中文字幕免费视频 | 亚洲欧美综合精品久久成人 | 911国产 | 久草在线这里只有精品 | 免费av在线播放 | 99视频偷窥在线精品国自产拍 | 狠狠色丁婷婷日日 | 国产在线精 | 美女网站色 | 久久一二区| 成人动漫精品一区二区 | 欧美日韩国内在线 | 99久久99久久综合 | 9久久精品 | 伊人婷婷色 | 91精品麻豆 | 999久久久国产精品 高清av免费观看 | 亚洲欧美视频网站 | 国产网站色| 亚洲高清不卡av | av手机在线播放 | 黄色片免费看 | 日日日天天天 | 日韩免费电影在线观看 | 丁香五月缴情综合网 | 美女久久久 | 国产福利av| 中文字幕黄色av | 欧美日韩中文视频 | 91最新地址永久入口 | 久久69av| 一级淫片在线观看 | 四虎在线免费观看 | 国产在线一线 | 国产精品久久久久久一区二区三区 | 91亚洲精品在线 | 国产专区欧美专区 | 激情欧美一区二区免费视频 | 特级a老妇做爰全过程 | 狠狠gao | 91成人在线观看高潮 | 97超在线视频 | 免费能看的av | 日本高清dvd | 人人爽人人爽人人爽学生一级 | 日韩成人不卡 | 97超碰色偷偷 | 国产成人精品一区二三区 | 欧美性生活大片 | 西西人体4444www高清视频 | 精品毛片在线 | 亚洲成av人片在线观看无 | 免费黄色在线网站 | 亚洲精品在线免费播放 | 日韩欧美视频在线免费观看 | 国产精品久久久久av免费 | 国产一二区视频 | 毛片网站免费在线观看 | 国产精品久久一 | 国产精品影音先锋 | 国产小视频在线观看免费 | 亚洲我射av | 91精品国产成人观看 | 香蕉视频国产在线观看 | 亚洲闷骚少妇在线观看网站 | 激情婷婷 | 91精品国产综合久久久久久久 | 91亚洲精品久久久蜜桃借种 | 国产精品18久久久久久不卡孕妇 | 精品国产精品久久一区免费式 | 精品免费观看 | 亚洲日本三级 | 亚洲欧美激情精品一区二区 | 久久久久久在线观看 | 久久久黄视频 | 五月天综合色激情 | 国产精品免费久久久久久久久久中文 | 欧美日韩一区二区三区不卡 | 中文字幕人成乱码在线观看 | freejavvideo日本免费 | 色成人亚洲 | 久久99深爱久久99精品 | 国产精品视频大全 | 在线91精品 | 久久黄色免费 | 久久综合久久综合久久综合 | www在线观看视频 | 国产视频不卡一区 | 欧美综合国产 | 99 色| 在线亚洲精品 | 久久久久网站 | 91精品国自产拍天天拍 | 久久99精品国产麻豆婷婷 | 超碰在线天天 | 人人插人人澡 | 激情久久一区二区三区 | 中文在线a天堂 | 中文字幕国产视频 | 精品av网站| 亚洲欧洲国产日韩精品 | 国产亚洲精品久久久久动 | 欧美有色| av解说在线 | 人人澡人人添人人爽一区二区 | 国内久久看 | 激情av网| 超碰在线97国产 | 亚洲精品国产电影 | 亚洲午夜精品电影 | 国产小视频91 | 又黄又爽的视频在线观看网站 | 四虎成人网 | 最新国产在线观看 | 亚洲精品久久激情国产片 | 黄色小说视频网站 | 日韩美视频 | 久久国产网站 | 亚洲美女视频在线 | 在线a人片免费观看视频 | 最新超碰在线 | 久久久网站 | 亚洲国产精品一区二区久久hs | 午夜久久久久久久久久久 | 97视频一区| 国产专区在线视频 | 日本久久视频 | 91福利试看| 免费看三级网站 | 韩国一区二区三区在线观看 | 亚洲精品女人 | h视频在线看 | 成人免费观看大片 | 日韩羞羞| 丁香九月婷婷 | 国内精品毛片 | 欧美最猛性xxxxx亚洲精品 | 国产激情免费 | 欧美在线资源 | 国产无区一区二区三麻豆 | 中文字幕第 | 麻豆视频一区二区 | 欧美最新另类人妖 | 福利二区视频 | 天天操夜夜操天天射 | 国产在线探花 | 欧美日韩中字 | 久草久草在线观看 | 国产麻豆果冻传媒在线观看 | 久久久久久久久毛片精品 | av解说在线观看 | 日日夜夜操av | 视频在线观看亚洲 | av手机在线播放 | 久草在线在线视频 | 久久久国产精品麻豆 | 精品久久电影 | 国产精品剧情在线亚洲 | 免费看片网址 | 欧亚日韩精品一区二区在线 | 久久新| 又黄又刺激视频 | 国产一级二级在线播放 | 午夜精品一区二区三区免费视频 | av大片免费看 | 婷婷爱五月天 | 国产精品久久久久久久妇 | 国产又黄又爽又猛视频日本 | 天堂在线免费视频 | 久久久久久免费 | 国产一区网 | 夜夜婷婷 | 97理论电影 | 国产精品久久久久久久久久免费看 | 日韩极品在线 | a久久久久久 | 国产麻豆精品95视频 | 又黄又爽又无遮挡的视频 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 人人澡av| 国产又粗又猛又黄又爽 | 久久久国产精品视频 | free. 性欧美.com | 日本黄网站 | 国产中出在线观看 | 夜夜操夜夜干 | 亚洲尺码电影av久久 | 在线免费观看av网站 | 国内精品久久久久久中文字幕 | 亚洲一二三在线 | 色综合天天在线 | a'aaa级片在线观看 | a级国产乱理伦片在线观看 亚洲3级 | 精品视频亚洲 | 在线视频日韩精品 | 亚洲 在线| 久久免费福利视频 | 7799av| 国产精品久久久久久久毛片 | 成人一区二区在线观看 | 色综合夜色一区 | 91一区啪爱嗯打偷拍欧美 | 天天射天天 | 在线播放av网址 | 精品三级av | 欧美成人性网 | 999久久久久久 | 午夜在线国产 | 久草在线免费资源站 | 中文在线免费看视频 | 久久久久久久久久久久久久av | 国产小视频在线看 | 在线观看国产中文字幕 | 亚洲成人资源网 | 超碰久热| 国产精品一码二码三码在线 | 精品国精品自拍自在线 | 欧美最猛性xxxx | 久久婷婷一区 | 久久成人毛片 | 九色琪琪久久综合网天天 | 天天操夜操视频 | 91免费视频网站在线观看 | 国产高清在线观看 | 国产美女视频一区 | 欧美成人一区二区 | 99视频精品全国免费 | 日韩系列在线观看 | 蜜桃视频日韩 | 国产精品一区二区电影 | 日韩中文字幕在线 | 在线观看黄av | 91av片| 91自拍91| 日韩电影久久 | 国产综合香蕉五月婷在线 | 最近中文字幕免费 | av在线网站大全 | 成人av在线播放网站 | 99精品在线直播 | www.午夜视频 | 91久久久久久国产精品 | 亚洲国产wwwccc36天堂 | 午夜影视一区 | 中文字幕之中文字幕 | 久热这里有精品 | 8x成人免费视频 | 久久福利综合 | 国产999精品久久久 免费a网站 | 欧美日韩在线播放一区 | 韩国精品福利一区二区三区 | 成人污视频在线观看 | 午夜精品一区二区三区可下载 | 中文字幕一区二区在线观看 | 999久久久久久久久 69av视频在线观看 | 国产99久久精品一区二区300 | 97在线观看免费观看高清 | 丁香婷婷久久久综合精品国产 | 国产精品短视频 | 福利视频网址 | 精品国产乱码一区二 | 欧美日产在线观看 | 日韩av高清在线观看 | 91成人破解版 | 亚洲精品在线视频播放 | 亚洲一级免费电影 | 9999精品| 亚洲国产精品成人综合 | 黄色com| 国产精品6999成人免费视频 | 亚洲永久免费av | 久久伊人精品一区二区三区 | 四虎成人精品永久免费av | 国产经典三级 | 日本久草电影 | 天天天天天天操 | 久草在线在线视频 | 国产精品久久久久婷婷 | 亚洲精品美女 | 97日日 | 亚洲码国产日韩欧美高潮在线播放 | 中文字幕日韩高清 | a级国产乱理伦片在线观看 亚洲3级 | 在线综合色 | 免费av一级电影 | 久久久久久久亚洲精品 | 国产精品 日韩精品 | 91视频高清| 日韩av一卡二卡三卡 | 综合激情婷婷 | 国产综合视频在线观看 | 综合在线亚洲 | 免费视频 你懂的 | 在线99热| 日韩有码中文字幕在线 |