摘要: 寫在前面:此隨筆僅僅是作為個人學習總結,有不對的地方,請各位前輩指正O(∩_∩)O........ 一: 引入 在學習集合之前我們都學習過數組.可以知道數組的長度在聲明的時候就已經被固定了,不可以增加或者修改.這個時候我們想要有數組的效果,又可以隨意的改變長度,那怎麼辦呢?此時我們的集合就出 ...
摘要: 寫在前面:此隨筆僅僅是作為個人學習總結,有不對的地方,請各位前輩指正O(∩_∩)O........
一: 引入
在學習集合之前我們都學習過數組.可以知道數組的長度在聲明的時候就已經被固定了,不可以增加或者修改.這個時候我們想要有數組的效果,又可以隨意的改變長度,那怎麼辦呢?此時我們的集合就出現啦.
在一個集合中我們可以通過Add(),AddRange()方法在集合末尾添加元素.可以通過Remove(),RemoveAt()方法移除元素.如果此時我們獲取這個集合的Count屬性值,就會發現這個值在不斷改變.
二: 為什麼
首先我們來瞭解一下集合裡面的兩個屬性:
Count: 表示當前這個集合內元素的個數 ( Gets the number of elements actually contained in the System.Collections.ArrayList.)
Capacity: 表示當前這個集合可以容納的元素個數 (Gets or sets the number of elements that the System.Collections.ArrayList can contain.)
怎麼說呢?
首先我們聲明一個集合:
ArrayList list = new ArrayList(); Console.WriteLine(list.Count); Console.WriteLine(list.Capacity);
結果為: 0 , 0
給集合添加一個值:
ArrayList list = new ArrayList(); list.Add("abc"); Console.WriteLine(list.Count); Console.WriteLine(list.Capacity);
結果為: 1 , 4
給集合添加四個值:
(代碼略)
結果為: 4 , 4
給集合添加五個值:
(代碼略)
結果為: 5 , 8
給集合添加九個值:
結果為: 9 , 16
移除一個值:
結果為: 8 , 8
由此我們可以看到,當我們只聲明集合沒有賦值的時候,沒有可以容納的個數.但是一旦我們往集合里添加數據,就會存在4個可以容納的空間,超過4個就會翻倍的去申請.
當我們移除元素的時候,集合可以容納的數目也會減少