c# 集合的長度為什么是可變的


摘要: 寫在前面:此隨筆僅僅是作為個人學習總結,有不對的地方,請各位前輩指正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個就會翻倍的去申請.

當我們移除元素的時候,集合可以容納的數目也會減少

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM