青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎(chǔ)} {C++ 高級} {C#界面,C++核心算法} {設(shè)計模式} {C#基礎(chǔ)}

ArrayList的使用方法【轉(zhuǎn)載】

 

ArrayList 的使用方法 【轉(zhuǎn)載】

 

***

Source URL: http://i.yesky.com/bbs/jsp/view.jsp?articleID=889992&forumID=150

***  

1 、什么是 ArrayList
    ArrayList 就是傳說中的動態(tài)數(shù)組,用 MSDN 中的說法,就是 Array 的復(fù)雜版本,它提供了如下一些好處:

動態(tài)的增加和減少元素
實現(xiàn)了 ICollection 和 IList 接口
靈活的設(shè)置數(shù)組的大小

2 、如何使用 ArrayList
   最簡單的例子:
ArrayList List = new ArrayList();
for( int i=0;i<10;i++ ) // 給數(shù)組增加 10 個 Int 元素
List.Add(i);
//.. 程序做一些處理
List.RemoveAt(5);// 將第 6 個元素移除
for( int i=0;i<3;i++ ) // 再增加 3 個元素
  List.Add(i+20);
Int32[] values = (Int32[])List.ToArray(typeof(Int32));// 返回 ArrayList 包含的數(shù)組

這是一個簡單的例子,雖然沒有包含 ArrayList 所有的方法,但是可以反映出 ArrayList 最常用的用法

3 、 ArrayList 重要的方法和屬性
( 1 )構(gòu)造器
    ArrayList 提供了三個構(gòu)造器:
public ArrayList();
默認的構(gòu)造器,將會以默認( 16 )的大小來初始化內(nèi)部的數(shù)組
public ArrayList(ICollection);
用一個 ICollection 對象來構(gòu)造,并將該集合的元素添加到 ArrayList
public ArrayList(int);
用指定的大小來初始化內(nèi)部的數(shù)組

( 2 )IsSynchronized 屬性和 ArrayList.Synchronized 方法
    IsSynchronized 屬性指示當(dāng)前的 ArrayList 實例是否支持線程同步,而 ArrayList.Synchronized 靜態(tài)方法則會返回一個 ArrayList 的線程同步的封裝。
    如果使用非線程同步的實例,那么在多線程訪問的時候,需要自己手動調(diào)用 lock 來保持線程同步,例如:
ArrayList list = new ArrayList();
//...
lock( list.SyncRoot ) // 當(dāng) ArrayList 為非線程包裝的時候, SyncRoot 屬性其實就是它自己,但是為了滿足 ICollection 的 SyncRoot 定義,這里還是使用 SyncRoot 來保持源代碼的規(guī)范性
{
list.Add(  “ Add a Item ”  );
}

    如果使用 ArrayList.Synchronized 方法返回的實例,那么就不用考慮線程同步的問題,這個實例本身就是線程安全的,實際上 ArrayList 內(nèi)部實現(xiàn)了一個保證線程同步的內(nèi)部類, ArrayList.Synchronized 返回的就是這個類的實例,它里面的每個屬性都是用了 lock 關(guān)鍵字來保證線程同步。

****

但是,使用這個方法( ArrayList.Synchronized )并不能保證枚舉的同步,例如,一個線程正在刪除或添加集合項,而另一個線程同時進行枚舉,這時枚舉將會拋出異常。所以,在枚舉的時候,你必須明確使用 SyncRoot 鎖定這個集合。

 

Hashtable 與 ArrayList 關(guān)于線程安全性的使用方法類似。

****

( 3 )Count 屬性和 Capacity 屬性
    Count 屬性是目前 ArrayList 包含的元素的數(shù)量,這個屬性是只讀的。
Capacity 屬性是目前 ArrayList 能夠包含的最大數(shù)量,可以手動的設(shè)置這個屬性,但是當(dāng)設(shè)置為小于 Count 值的時候會引發(fā)一個異常。

( 4 )Add 、 AddRange 、 Remove 、 RemoveAt 、 RemoveRange 、 Insert 、 InsertRange
     這幾個方法比較類似
Add 方法用于添加一個元素到當(dāng)前列表的末尾
AddRange 方法用于添加一批元素到當(dāng)前列表的末尾
Remove 方法用于刪除一個元素,通過元素本身的引用來刪除
RemoveAt 方法用于刪除一個元素,通過索引值來刪除
RemoveRange 用于刪除一批元素,通過指定開始的索引和刪除的數(shù)量來刪除
Insert 用于添加一個元素到指定位置,列表后面的元素依次往后移動
InsertRange 用于從指定位置開始添加一批元素,列表后面的元素依次往后移動

另外,還有幾個類似的方法:
Clear 方法用于清除現(xiàn)有所有的元素
Contains 方法用來查找某個對象在不在列表之中

其他的我就不一一累贅了,大家可以查看 MSDN ,上面講的更仔細
( 5 )TrimSize 方法
     這個方法用于將 ArrayList 固定到實際元素的大小,當(dāng)動態(tài)數(shù)組元素確定不在添加的時候,可以調(diào)用這個方法來釋放空余的內(nèi)存。
( 6 )ToArray 方法
這個方法把 ArrayList 的元素 Copy 到一個新的數(shù)組中。


4 ArrayList 與數(shù)組轉(zhuǎn)換
例 1 :
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);

Int32[] values = (Int32[])List.ToArray(typeof(Int32));

例 2 :
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);

Int32[] values = new Int32[List.Count];
List.CopyTo(values);

上面介紹了兩種從 ArrayList 轉(zhuǎn)換到數(shù)組的方法

例 3 :
ArrayList List = new ArrayList();
List.Add(  “ string ”  );
List.Add( 1 );
// 往數(shù)組中添加不同類型的元素

object[] values = List.ToArray(typeof(object)); // 正確
string[] values = (string[])List.ToArray(typeof(string)); // 錯誤

和數(shù)組不一樣,因為可以轉(zhuǎn)換為 Object 數(shù)組,所以往 ArrayList 里面添加不同類型的元素是不會出錯的,但是當(dāng)調(diào)用 ArrayList 方法的時候,要么傳遞所有元素都可以正確轉(zhuǎn)型的類型或者 Object 類型,否則將會拋出無法轉(zhuǎn)型的異常。


5 、ArrayList 最佳使用建議
這一節(jié)我們來討論 ArrayList 與數(shù)組的差別,以及 ArrayList 的效率問題
( 1 ) ArrayList 是 Array 的復(fù)雜版本
ArrayList 內(nèi)部封裝了一個 Object 類型的數(shù)組,從一般的意義來說,它和數(shù)組沒有本質(zhì)的差別,甚至于 ArrayList 的許多方法,如 Index 、 IndexOf 、 Contains 、 Sort 等都是在內(nèi)部數(shù)組的基礎(chǔ)上直接調(diào)用 Array 的對應(yīng)方法。
( 2 )內(nèi)部的 Object 類型的影響
對于一般的引用類型來說,這部分的影響不是很大,但是對于值類型來說,往 ArrayList 里面添加和修改元素,都會引起裝箱和拆箱的操作,頻繁的操作可能會影響一部分效率。
但是恰恰對于大多數(shù)人,多數(shù)的應(yīng)用都是使用值類型的數(shù)組。
消除這個影響是沒有辦法的,除非你不用它,否則就要承擔(dān)一部分的效率損失,不過這部分的損失不會很大。
( 3 )數(shù)組擴容
這是對 ArrayList 效率影響比較大的一個因素。
每當(dāng)執(zhí)行 Add 、 AddRange 、 Insert 、 InsertRange 等添加元素的方法,都會檢查內(nèi)部數(shù)組的容量是否不夠了,如果是,它就會以當(dāng)前容量的兩倍來重新構(gòu)建一個數(shù)組,將舊元素 Copy 到新數(shù)組中,然后丟棄舊數(shù)組,在這個臨界點的擴容操作,應(yīng)該來說是比較影響效率的。

例 1 :比如,一個可能有 200 個元素的數(shù)據(jù)動態(tài)添加到一個以默認 16 個元素大小創(chuàng)建的 ArrayList 中,將會經(jīng)過:
16*2*2*2*2 = 256
四次的擴容才會滿足最終的要求,那么如果一開始就以:
ArrayList List = new ArrayList( 210 );
的方式創(chuàng)建 ArrayList ,不僅會減少 4 次數(shù)組創(chuàng)建和 Copy 的操作,還會減少內(nèi)存使用。

例 2 :預(yù)計有 30 個元素而創(chuàng)建了一個 ArrayList :
ArrayList List = new ArrayList(30);
在執(zhí)行過程中,加入了 31 個元素,那么數(shù)組會擴充到 60 個元素的大小,而這時候不會有新的元素再增加進來,而且有沒有調(diào)用 TrimSize 方法,那么就有 1 次擴容的操作,并且浪費了 29 個元素大小的空間。如果這時候,用:
ArrayList List = new ArrayList(40);
那么一切都解決了。
所以說,正確的預(yù)估可能的元素,并且在適當(dāng)?shù)臅r候調(diào)用 TrimSize 方法是提高 ArrayList 使用效率的重要途徑。
( 4 )頻繁的調(diào)用 IndexOf 、 Contains 等方法( Sort 、 BinarySearch 等方法經(jīng)過優(yōu)化,不在此列)引起的效率損失
首先,我們要明確一點, ArrayList 是動態(tài)數(shù)組,它不包括通過 Key 或者 Value 快速訪問的算法,所以實際上調(diào)用 IndexOf 、 Contains 等方法是執(zhí)行的簡單的循環(huán)來查找元素,所以頻繁的調(diào)用此類方法并不比你自己寫循環(huán)并且稍作優(yōu)化來的快,如果有這方面的要求,建議使用 Hashtable 或 SortedList 等鍵值對的集合。
ArrayList al=new ArrayList();

al.Add("How");
al.Add("are");
al.Add("you!");

al.Add(100);
al.Add(200);
al.Add(300);

al.Add(1.2);
al.Add(22.8);

.........

// 第一種遍歷  ArrayList  對象的方法
foreach(object o in al)
{
Console.Write(o.ToString()+" ");
}

// 第二種遍歷  ArrayList  對象的方法
IEnumerator ie=al.GetEnumerator();
while(ie.MoveNext())
{
Console.Write(ie.Curret.ToString()+" ");
}

// 第三種遍歷  ArrayList  對象的方法
我忘記了 , 好象是   利用  ArrayList 對象的一個屬性 , 它返回一此對象中的元素個數(shù) .

然后在利用索引 
for(int i=0;i<Count;i++)
{
Console.Write(al[i].ToString()+" ");
}

-------------------------數(shù)組的用法----------------------------------------------
數(shù)組概述

C# 數(shù)組從零開始建立索引,即數(shù)組索引從零開始。 C# 中數(shù)組的工作方式與在大多數(shù)其他流行語言中的工作方式類似。但還有一些差異應(yīng)引起注意。

聲明數(shù)組時,方括號 ([]) 必須跟在類型后面,而不是標識符后面。在 C# 中,將方括號放在標識符后是不合法的語法。

int[] table; // not int table[]; 

另一細節(jié)是,數(shù)組的大小不是其類型的一部分,而在 C 語言中它卻是數(shù)組類型的一部分。這使您可以聲明一個數(shù)組并向它分配 int 對象的任意數(shù)組,而不管數(shù)組長度如何。

int[] numbers; // declare numbers as an int array of any size

numbers = new int[10];  // numbers is a 10-element array

numbers = new int[20];  // now it's a 20-element array

  聲明數(shù)組

C# 支持一維數(shù)組、多維數(shù)組(矩形數(shù)組)和數(shù)組的數(shù)組(交錯的數(shù)組)。下面的示例展示如何聲明不同類型的數(shù)組:

一維數(shù)組:

int[] numbers;
  
多維數(shù)組:

string[,] names;
  
數(shù)組的數(shù)組(交錯的):
 
byte[][] scores;
  
聲明數(shù)組(如上所示)并不實際創(chuàng)建它們。在 C# 中,數(shù)組是對象(本教程稍后討論),必須進行實例化。下面的示例展示如何創(chuàng)建數(shù)組:

一維數(shù)組:

int[] numbers = new int[5];
  
多維數(shù)組:

string[,] names = new string[5,4];
  
數(shù)組的數(shù)組(交錯的):

byte[][] scores = new byte[5][];
  
for (int x = 0; x < scores.Length; x++)
  
{  
scores[x] = new byte[4];
}
  
還可以有更大的數(shù)組。例如,可以有三維的矩形數(shù)組:

int[,,] buttons = new int[4,5,3];
  
甚至可以將矩形數(shù)組和交錯數(shù)組混合使用。例如,下面的代碼聲明了類型為 int的二維數(shù)組的三維數(shù)組的一維數(shù)組。

int[][,,][,] numbers;
  
    
初始化數(shù)組
  
C# 通過將初始值括在大括號 ({}) 內(nèi)為在聲明時初始化數(shù)組提供了簡單而直接了當(dāng)?shù)姆椒āO旅娴氖纠故境跏蓟煌愋偷臄?shù)組的各種方法。

注意    如果在聲明時沒有初始化數(shù)組,則數(shù)組成員將自動初始化為該數(shù)組類型的默認初始值。另外,如果將數(shù)組聲明為某類型的字段,則當(dāng)實例化該類型時它將被設(shè)置為默認值 null。

 一維數(shù)組

int[] numbers = new int[5] {1, 2, 3, 4, 5};
  
string[] names = new string[3] {"Matt", "Joanne", "Robert"};
  
可省略數(shù)組的大小,如下所示:

int[] numbers = new int[] {1, 2, 3, 4, 5};
  
string[] names = new string[] {"Matt", "Joanne", "Robert"};
  
如果提供了初始值設(shè)定項,則還可以省略 new運算符,如下所示:

int[] numbers = {1, 2, 3, 4, 5};
  
string[] names = {"Matt", "Joanne", "Robert"};
  
多維數(shù)組
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
  
string[,] siblings = new string[2, 2] { {"Mike","Amy"}, {"Mary","Albert"} };
  
可省略數(shù)組的大小,如下所示:

int[,] numbers = new int[,] { {1, 2}, {3, 4}, {5, 6} };
  
string[,] siblings = new string[,] { {"Mike","Amy"}, {"Mary","Albert"} };
  
如果提供了初始值設(shè)定項,則還可以省略 new運算符,如下所示:

int[,] numbers = { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = { {"Mike", "Amy"}, {"Mary", "Albert"} };
  
交錯的數(shù)組(數(shù)組的數(shù)組)
可以像下例所示那樣初始化交錯的數(shù)組:
int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
  
可省略第一個數(shù)組的大小,如下所示:

int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
  
-或-

int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
  
請注意,對于交錯數(shù)組的元素沒有初始化語法。

訪問數(shù)組成員
訪問數(shù)組成員可以直接進行,類似于在 C/C++ 中訪問數(shù)組成員。例如,下面的代碼創(chuàng)建一個名為 numbers的數(shù)組,然后向該數(shù)組的第五個元素賦以 5:

int[] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
  
numbers[4] = 5;
  
下面的代碼聲明一個多維數(shù)組,并向位于 [1, 1]的成員賦以 5:

int[,] numbers = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} };
  
numbers[1, 1] = 5;
  
下面聲明一個一維交錯數(shù)組,它包含兩個元素。第一個元素是兩個整數(shù)的數(shù)組,第二個元素是三個整數(shù)的數(shù)組:

int[][] numbers = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5}};
  
下面的語句向第一個數(shù)組的第一個元素賦以 58,向第二個數(shù)組的第二個元素賦以 667:

numbers[0][0] = 58;
  
numbers[1][1] = 667;
  
數(shù)組是對象
  
在 C# 中,數(shù)組實際上是對象 。System.Array是所有數(shù)組類型的抽象基類型。可以使用 System.Array具有的屬性以及其他類成員。這種用法的一個示例是使用“長度”(Length)屬性獲取數(shù)組的長度。下面的代碼將 numbers數(shù)組的長度(為 5)賦給名為 LengthOfNumbers的變量:

int[] numbers = {1, 2, 3, 4, 5};
  
int LengthOfNumbers = numbers.Length;
  
System.Array 類提供許多有用的其他方法/屬性,如用于排序、搜索和復(fù)制數(shù)組的方法。

對數(shù)組使用 foreach
C# 還提供 foreach語句。該語句提供一種簡單、明了的方法來循環(huán)訪問數(shù)組的元素。例如,下面的代碼創(chuàng)建一個名為 numbers的數(shù)組,并用 foreach語句循環(huán)訪問該數(shù)組:

int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0};
  
foreach (int i in numbers)  
{      
System.Console.WriteLine(i);  
}
  
由于有了多維數(shù)組,可以使用相同方法來循環(huán)訪問元素,例如:

int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
  
foreach(int i in numbers)  
{  Console.Write("{0} ", i);}
  
該示例的輸出為:

9 99 3 33 5 55
  
不過,由于有了多維數(shù)組,使用嵌套 for循環(huán)將使您可以更好地控制數(shù)組元素。

posted on 2006-03-06 17:21 夢在天涯 閱讀(4504) 評論(1)  編輯 收藏 引用 所屬分類: C#/.NET

評論

# re: ArrayList的使用方法【轉(zhuǎn)載】 2007-05-25 19:58 bearhunter

學(xué)習(xí)  回復(fù)  更多評論   

公告

EMail:itech001#126.com

導(dǎo)航

統(tǒng)計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1812153
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美视频中文一区二区三区在线观看| 夜夜精品视频| 久久一区二区三区四区| 激情av一区二区| 久久亚洲免费| 欧美a级在线| 亚洲一区二区三区激情| 午夜精品在线看| 亚洲国产精品成人精品| 亚洲精品久久久久久下一站 | 欧美jjzz| 国产欧美一区二区三区在线老狼| 亚洲综合精品四区| 亚洲综合色在线| 精品av久久707| 亚洲欧洲另类| 国产日韩精品一区二区三区| 开心色5月久久精品| 欧美日韩国产在线播放网站| 欧美一级大片在线观看| 蜜臀久久久99精品久久久久久 | 国产精品一区亚洲| 欧美xx视频| 国产精品一区二区三区乱码| 欧美99久久| 国产精品专区第二| 亚洲肉体裸体xxxx137| 国产一区二区三区日韩| 99国产精品久久久久久久| 国语自产精品视频在线看抢先版结局 | 欧美日本韩国一区二区三区| 久久深夜福利| 国产精品久久久久久亚洲毛片 | 欧美一区午夜视频在线观看| 你懂的国产精品永久在线| 久久精品国产久精国产一老狼| 欧美日韩播放| 欧美韩日亚洲| 狠狠操狠狠色综合网| 亚洲一区免费视频| 亚洲私人黄色宅男| 欧美激情综合在线| 欧美韩日视频| 亚洲国产成人在线播放| 欧美在线观看日本一区| 欧美一区二区久久久| 久久国产精彩视频| 国产日韩精品一区二区三区在线 | 欧美亚洲一区二区在线| 欧美激情成人在线| 亚洲国产岛国毛片在线| 一区二区三区我不卡| 亚洲欧美日韩另类精品一区二区三区| 夜夜狂射影院欧美极品| 欧美激情91| 亚洲精品久久久一区二区三区| 亚洲国产精品免费| 狂野欧美一区| 亚洲国产成人tv| 亚洲片在线观看| 欧美成人午夜影院| 亚洲国产成人午夜在线一区 | 欧美在线网站| 亚洲一级免费视频| 欧美日韩在线亚洲一区蜜芽 | 牛夜精品久久久久久久99黑人| 国产日韩免费| 久久久久欧美| 欧美激情日韩| 一区二区三区黄色| 欧美日韩麻豆| 亚洲综合国产精品| 久久久国产成人精品| 亚洲大片免费看| 欧美丰满高潮xxxx喷水动漫| 日韩视频永久免费| 亚洲欧美日韩国产| 女同一区二区| 久久综合狠狠综合久久综合88 | 夜夜嗨av一区二区三区| 亚洲欧美亚洲| 国产一区高清视频| 美国十次成人| 一本色道久久综合亚洲精品按摩 | 欧美激情亚洲精品| 中文欧美字幕免费| 久久噜噜亚洲综合| 亚洲乱码国产乱码精品精可以看 | 99re6热在线精品视频播放速度| 亚洲影音一区| 在线观看一区二区视频| 欧美日韩网址| 久久久99爱| 在线亚洲伦理| 男女视频一区二区| 亚洲综合视频在线| 亚洲国产岛国毛片在线| 国产精品久久99| 免费av成人在线| 亚洲欧美日本日韩| 亚洲日本在线观看| 久久蜜桃香蕉精品一区二区三区| 日韩视频国产视频| 国外视频精品毛片| 国产精品护士白丝一区av| 久久亚洲综合| 亚洲欧美日韩另类| 亚洲美女少妇无套啪啪呻吟| 老司机67194精品线观看| 亚洲影院色无极综合| 亚洲激情国产| 伊人久久大香线蕉综合热线| 国产精品久久福利| 欧美激情a∨在线视频播放| 99精品国产在热久久| 久久综合色88| 久久人人九九| 欧美一级黄色录像| 宅男噜噜噜66一区二区| 亚洲国产精品成人| 一区三区视频| 黄色精品在线看| 国产无一区二区| 国产乱子伦一区二区三区国色天香| 欧美精品成人一区二区在线观看 | 亚洲人www| 欧美大片91| 欧美国产高潮xxxx1819| 久久裸体视频| 老司机精品福利视频| 久久天天躁夜夜躁狠狠躁2022| 久久国产加勒比精品无码| 亚洲欧美精品suv| 亚洲午夜一区二区三区| 亚洲图片欧洲图片日韩av| 一区二区三区精密机械公司| 日韩亚洲综合在线| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲黄色免费网站| 亚洲人成77777在线观看网| 亚洲国产美女| 99视频热这里只有精品免费| 亚洲精品黄色| 亚洲一区二区免费看| 午夜亚洲性色福利视频| 欧美一区二区视频在线观看| 久久久久久自在自线| 狼人社综合社区| 亚洲国产日韩在线一区模特| 亚洲精品欧美| 亚洲欧美不卡| 久久激情五月婷婷| 男人的天堂成人在线| 欧美日韩八区| 国产日韩欧美中文| 亚洲国产成人午夜在线一区| 日韩午夜三级在线| 亚洲欧美在线一区二区| 久久久青草婷婷精品综合日韩 | 亚洲国产精品一区二区久| 亚洲精选在线| 欧美亚洲一区二区三区| 久久久久久香蕉网| 欧美久久电影| 国产伦精品一区二区三区四区免费 | 亚洲高清一区二区三区| 99精品欧美一区二区三区 | 先锋a资源在线看亚洲| 久久综合九色综合欧美就去吻| 亚洲国产精品成人精品| 亚洲午夜激情在线| 美日韩精品视频免费看| 国产精品久久久久久户外露出| 黄色成人在线| 亚洲主播在线| 欧美激情精品久久久久| 亚洲午夜电影| 欧美不卡一区| 国产综合在线看| 亚洲校园激情| 欧美激情1区2区3区| 一本色道久久加勒比88综合| 亚洲调教视频在线观看| 久久久久国产免费免费| 亚洲美女中文字幕| 久久成人精品| 国产精品久久久久三级| 欧美日韩高清一区| 欧美国产先锋| 一区二区自拍| 亚洲欧美一区二区三区在线| 亚洲大片精品永久免费| 欧美在线免费看| 国产精品一区二区黑丝| 亚洲视频一区二区在线观看 | 久久精品麻豆| 亚洲视频成人| 欧美日韩在线高清| 99国产精品一区| 亚洲风情在线资源站|