在上一節介紹Array這個資料結構時,我們說到它是靜態,每個維度元素個數在編譯時間,就得唯一確定下來,並且其類型是強型別。
那麼,在這一節,我們將講述另一種與Array相似,但是克服了Array缺點的的資料結構:ArrayList。
首先,它不是靜態,編譯時間每一維度元素個數不用指定,系統預設元素個數為16,當元素增多並即將大於16時,它會增倍擴容到32,依次規律增長,變小時,相反處理。
其次,元素類型是弱類型,object。在運行時,根據實際被賦予的類型,確定每個元素的類型,也就是說,這個集合中的元素可以是各種不同的元素,魚龍混雜式的。
先看下.NET提供的ArrayList的介面:
1)對象建立和初始化
//對象建立 ArrayList arrayList = new ArrayList() {3.14, "vuefine"}; //添加元素 arrayList.Add("Hello wolrd"); arrayList.Add(5);
2)訪問元素
//訪問元素 object ele0 = arrayList[0]; Type t0 = ele0.GetType();//double
3)修改元素
//修改元素 arrayList[0] = "Ni hao";
4)刪除元素
//刪除元素 //移除已存在的對象 arrayList.Remove(5); arrayList.RemoveAt(0); //移除不存在的對象 arrayList.Remove(12); //不拋異常
5)ArrayList和另外一些對象關係
object cloneAL = arrayList.Clone(); //建立淺表副本 Type tClone = cloneAL.GetType(); //Array是abstract,只能通過靜態方法建立array Array array = Array.CreateInstance(typeof(object),arrayList.Count); arrayList.CopyTo(array);//複製到array