當(dāng)前位置:首頁 > IT技術(shù) > Windows編程 > 正文

C#:Arraylist
2021-09-03 18:37:48

ArrayList是.Net Framework提供的用于數(shù)據(jù)存儲和檢索的專用類,它是命名空間System.Collections下的一部分。它的大小是按照其中存儲的數(shù)據(jù)來動態(tài)擴(kuò)充與收縮的。所以,我們在聲明ArrayList對象時(shí)并不需要指定它的長度。

優(yōu)點(diǎn)
1、支持自動改變大小的功能
2、可以靈活的插入元素
3、可以靈活的刪除元素

和list的區(qū)別(缺點(diǎn))

在arraylist中,我們可以存放不同類型的數(shù)據(jù),可以是整型、字符串等,因?yàn)锳rrayList會把所有插入其中的數(shù)據(jù)都當(dāng)作為object類型來處理。這樣,在我們使用ArrayList中的數(shù)據(jù)來處理問題的時(shí)候,很可能會報(bào)類型不匹配的錯(cuò)誤,也就是說ArrayList不是類型安全的。既使我們保證在插入數(shù)據(jù)的時(shí)候都很小心,都有插入了同一類型的數(shù)據(jù),但在使用的時(shí)候,我們也需要將它們轉(zhuǎn)化為對應(yīng)的原類型來處理。這就存在了裝箱拆箱的操作,會帶來很大的性能損耗。

下面舉一個(gè)簡單的例子供大家理解:

?
ArrayList list = new ArrayList();

//新增數(shù)據(jù)
list.Add("ykc");
list.Add(123);

//修改數(shù)據(jù)
list[2] = 345;

//移除數(shù)據(jù)
list.RemoveAt(0);

//插入數(shù)據(jù)
list.Insert(0, "hello world");

//獲取元素值
object value = al[index]; //al 為 ArrayList 對象,一般需要再對 value 進(jìn)行類型轉(zhuǎn)換,比如:int n = (int)value;
//設(shè)置元素值
al[index] = value; //al 為 ArrayList 對象,index 必須小于 Count
//追加元素
int ArrayList.Add(object value) //返回添加的元素的索引
//插入元素
void ArrayList.Insert(int index, object value)
//刪除元素
//刪除元素后,后面的元素會前移,但 Capacity 不會變化。
void ArrayList.Remove(object obj) //從前(索引 0)往后查找,刪除找到的第一個(gè)和 obj 相同的元素
void ArrayList.RemoveAt(int index) //刪除索引 index 對應(yīng)的元素
void ArrayList.RemoveRange(int index, int count) //從索引 index 開始,刪除 count 個(gè)元素
//查找元素
int ArrayList.IndexOf(object value) //從前(索引 0)往后查找,返回找到的第一個(gè)和 obj 相同的元素的索引
int ArrayList.IndexOf(object value, int startIndex)
int ArrayList.IndexOf(object value, int startIndex, int count)
int ArrayList.LastIndexOf(object value) //從后往前(索引 0)查找,返回找到的第一個(gè)和 obj 相同的元素的索引
int ArrayList.LastIndexOf(object value, int startIndex)
int ArrayList.LastIndexOf(object value, int startIndex, int count)

?

?

本文摘自 :https://blog.51cto.com/u

開通會員,享受整站包年服務(wù)立即開通 >