摘要: 寫在前面:此隨筆僅僅是做爲我的學習總結,有不對的地方,請各位前輩指正O(∩_∩)O........ 數組
一: 引入學習
在學習集合以前咱們都學習過數組.能夠知道數組的長度在聲明的時候就已經被固定了,不能夠增長或者修改.這個時候咱們想要有數組的效果,又能夠隨意的改變長度,那怎麼辦呢?此時咱們的集合就出現啦.spa
在一個集合中咱們能夠經過Add(),AddRange()方法在集合末尾添加元素.能夠經過Remove(),RemoveAt()方法移除元素.若是此時咱們獲取這個集合的Count屬性值,就會發現這個值在不斷改變.code
二: 爲何blog
首先咱們來了解一下集合裏面的兩個屬性:ci
Count: 表示當前這個集合內元素的個數 ( Gets the number of elements actually contained in the System.Collections.ArrayList.)element
Capacity: 表示當前這個集合能夠容納的元素個數 (Gets or sets the number of elements that the System.Collections.ArrayList can contain.)it
怎麼說呢?io
首先咱們聲明一個集合:class
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個就會翻倍的去申請.
當咱們移除元素的時候,集合能夠容納的數目也會減小