ArrayList是.Net Framework提供的用于數(shù)據(jù)存儲(chǔ)和檢索的專用類,它是命名空間System.Collections下的一部分。它的大小是按照其中存儲(chǔ)的數(shù)據(jù)來(lái)動(dòng)態(tài)擴(kuò)充與收縮的。所以,我們?cè)诼暶鰽rrayList對(duì)象時(shí)并不需要指定它的長(zhǎng)度。
優(yōu)點(diǎn)
1、支持自動(dòng)改變大小的功能
2、可以靈活的插入元素
3、可以靈活的刪除元素
和list的區(qū)別(缺點(diǎn))
在arraylist中,我們可以存放不同類型的數(shù)據(jù),可以是整型、字符串等,因?yàn)锳rrayList會(huì)把所有插入其中的數(shù)據(jù)都當(dāng)作為object類型來(lái)處理。這樣,在我們使用ArrayList中的數(shù)據(jù)來(lái)處理問(wèn)題的時(shí)候,很可能會(huì)報(bào)類型不匹配的錯(cuò)誤,也就是說(shuō)ArrayList不是類型安全的。既使我們保證在插入數(shù)據(jù)的時(shí)候都很小心,都有插入了同一類型的數(shù)據(jù),但在使用的時(shí)候,我們也需要將它們轉(zhuǎn)化為對(duì)應(yīng)的原類型來(lái)處理。這就存在了裝箱與拆箱的操作,會(huì)帶來(lái)很大的性能損耗。
下面舉一個(gè)簡(jiǎn)單的例子供大家理解:
?
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 對(duì)象,一般需要再對(duì) value 進(jìn)行類型轉(zhuǎn)換,比如:int n = (int)value;
//設(shè)置元素值
al[index] = value; //al 為 ArrayList 對(duì)象,index 必須小于 Count
//追加元素
int ArrayList.Add(object value) //返回添加的元素的索引
//插入元素
void ArrayList.Insert(int index, object value)
//刪除元素
//刪除元素后,后面的元素會(huì)前移,但 Capacity 不會(huì)變化。
void ArrayList.Remove(object obj) //從前(索引 0)往后查找,刪除找到的第一個(gè)和 obj 相同的元素
void ArrayList.RemoveAt(int index) //刪除索引 index 對(duì)應(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