C# ArrayList集合
集合
可以向數組那樣存儲多個數據,但是長度不固定。往其中存多少個都可以。
ArrayList:動態數組(不是一個數組,是具有數組的功能再克服了數組的缺點)
ArrayList所在的命名空間:System.Collections
它是1個類,所以我們要使用的話,就必須要創建1個對象。
元素的類型:object 就算看起來存儲滿了,其實它還會自動增長。
ArrayList的用法
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 //引入 ArrayList 所在的命名空間 6 using System.Collections; 7 8 namespace Test 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 //創建 ArrayList 數組 15 ArrayList array = new ArrayList(); 16 17 //用Add 方法往 ArrayList 添加數據 18 array.Add("ABC"); 19 array.Add(123); 20 //用Insert 方法,傳入下標和值的方式添加數據 21 array.Insert(2, "新插入的值"); 22 23 //修改 ArrayList 里的數據 24 array[1] = 456; 25 26 //用 RemoveAt 方法根據下標移除 ArrayList 里的數據 27 array.RemoveAt(0); 28 //用 RemoveAt 方法刪除數據,會刪除集合中第一個和傳入的數據相等的元素。 29 array.Remove("ABC"); 30 31 //遍歷 ArrayList里面的數據 32 foreach (var item in array) 33 { 34 Console.WriteLine(item); 35 } 36 37 } 38 } 39 }
ArrayList存儲數據的原理
真正存儲數據的是1個object類型的數組。object[] _items
在靜態構造函數中創建了1個0個長度的object數組。在實例構造函數中將0個長度的數組賦值給了_items字段。
所以 在創建完ArrayList對象以后,這個集合對象中的_items數組有0個長度。
當我們第一次往其中存儲數據的時候,會創建1個4個長度的數組被items字段指向。將值存儲到該數組中。
集合中存儲數據的是1個object數組。所以ArrayList中可以存儲任意類型的數據。會將其加到ArrayList集合中。
Add()方法 將數據存儲到集合中,返回數據的下標。參數是1個object類型。所以我們可以給任意的1個數據。
AddRange() 需要傳入1個ICollection對象。數組和ArrayList集合就是他的子類。可以傳入一個數組,也可以傳入一個ArrayList集合,如果是這樣,它會將數組/集合中的每一個元素,加到集合對象中去。
ArrayList集合的其他用法
Remove()方法 傳入一個數據 會刪除集合中第一個和傳入的數據相等的元素。
RemoveAt()方法 傳入下標,刪除指定下標的元素。
RemoveRange() 從指定的下標開始刪除指定個數的元素。每刪除一個元素的時候,這個元素的后面的元素的下標會發生改變。並且Count屬性的值也會減小。
Clear() 方法 清空集合中的所有數據
Count()屬性可以得到集合中真實有效的元素的個數
Contains ()方法 判斷集合中是否包含指定的元素
GetRange() 從1個大集合中得到一個小集合
IndexOf() 查找指定的元素在集合中第一次出現的下標,如果沒有返回-1.
Insert() 在指定的下標插入元素
Reverse() 翻轉集合中的元素
Sort() 升序排序集合中的元素。只適合於元素是數組類型的。
ToArray() 將集合轉換成為1個數組
TrimToSize() 將集合中存儲數據的數組的多余的元素刪除。