ArrayList是.Net Framework提供的用于數(shù)據(jù)存儲和檢索的專用類,它是命名空間System.Collections下的一部分。它的大小是按照其中存儲的數(shù)據(jù)來動態(tài)擴充與收縮的。所以,我們在聲明ArrayList對象時并不需要指定它的長度。
優(yōu)點
1、支持自動改變大小的功能
2、可以靈活的插入元素
3、可以靈活的刪除元素
和list的區(qū)別(缺點)
在arraylist中,我們可以存放不同類型的數(shù)據(jù),可以是整型、字符串等,因為ArrayList會把所有插入其中的數(shù)據(jù)都當作為object類型來處理。這樣,在我們使用ArrayList中的數(shù)據(jù)來處理問題的時候,很可能會報類型不匹配的錯誤,也就是說ArrayList不是類型安全的。既使我們保證在插入數(shù)據(jù)的時候都很小心,都有插入了同一類型的數(shù)據(jù),但在使用的時候,我們也需要將它們轉化為對應的原類型來處理。這就存在了裝箱與拆箱的操作,會帶來很大的性能損耗。
下面舉一個簡單的例子供大家理解:
?
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 進行類型轉換,比如:int n = (int)value;
//設置元素值
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)往后查找,刪除找到的第一個和 obj 相同的元素
void ArrayList.RemoveAt(int index) //刪除索引 index 對應的元素
void ArrayList.RemoveRange(int index, int count) //從索引 index 開始,刪除 count 個元素
//查找元素
int ArrayList.IndexOf(object value) //從前(索引 0)往后查找,返回找到的第一個和 obj 相同的元素的索引
int ArrayList.IndexOf(object value, int startIndex)
int ArrayList.IndexOf(object value, int startIndex, int count)
int ArrayList.LastIndexOf(object value) //從后往前(索引 0)查找,返回找到的第一個和 obj 相同的元素的索引
int ArrayList.LastIndexOf(object value, int startIndex)
int ArrayList.LastIndexOf(object value, int startIndex, int count)
?
?
本文摘自 :https://blog.51cto.com/u