1.數組的大小是固定的,無法縮放。雖然通用方法系統。Array.Resize可以重置數組大小,
但是,此方法用新設置的大小重新創建數組,並用舊數組的元素對其進行初始化。那麽之前的數組將被放棄!而該組的長度是可變的。
2.數組希望聲明元素的類型,但集合類的元素類型是object。
3.數組可以讀寫,只讀數組不能聲明。集合類可以提供只讀方法以只讀方式使用集合。
4.數組必須有整數下標才能訪問特定的元素,但很多時候這樣的下標並不太有用。集合也是數據列表,但不使用下標訪問。
很多時候,集合都有自定義的下標類型,而對於隊列和棧來說根本不支持下標訪問!
//數組
int【】int array 1;
//初始化聲明的壹維數組。
int array 1 = new int【3】;
int array 1 = new int【3】{ 1,2,3 };
int array 1 = new int【】{ 1,2,3 };
//ArrayList類對象設計為動態數組類型,其容量將根據需要適當擴展。
方法
1: add()將元素添加到數組中。
2: remove()刪除數組中的元素。
3:remove at(int I)刪除數組中索引值為I的元素。
4: reverse()反轉數組的元素。
5: sort()將數組的元素從小到大排列。
6: clone()復制數組。
//列表
可通過索引訪問的對象的強類型列表。提供搜索、排序和操作列表的方法。
當決定是使用List還是ArrayList類(兩者具有相似的功能)時,請記住List類在大多數情況下性能更好,並且是類型安全的。如果對List類的類型t使用引用類型,那麽
這兩個類的行為完全相同。但是,如果對類型T使用值類型,則需要考慮實現和打包問題。
如果值類型用於類型t,編譯器將專門為此值類型生成List類的實現。這意味著list對象的List元素可以在不裝箱的情況下使用,並且正在創建大約500個列表。
元素時,不裝箱列表元素節省的內存將大於用於生成此類實現的內存。
//字典
表示鍵和值的集合。Dictionary遍歷輸出的順序就是它被添加的順序,這與Hashtable不同。
//SortedList類
與哈希表類似,不同之處在於SortedList中的鍵數組是有序的。
//哈希表類
哈希表,名稱-值對。類似於字典(比數組更強大)。哈希表被優化,訪問下標的對象首先被哈希。如果您使用任何類型的鍵值訪問其元素,它將比其他集合更快。
GetHashCode()方法返回壹個int類型數據,這個鍵的值用於生成int類型數據。哈希表獲取該值並最終返回壹個索引,指示具有給定哈希的數據項在字典中的存儲位置。
//堆棧類
堆棧,後進先出。Push方法進入堆棧,pop方法退出堆棧。
隊列類別
排隊,先進先出。Enqueue方法進入隊列,dequeue方法退出隊列。
-
//字典
系統。collections . dictionary entry DIC =新系統。collections . dictionary entry(“key 1“,“value 1“);
詞典& ltint,string & gt水果=新詞典& ltint,string & gt();
//添加重復鍵將引發異常。
水果。add(1,“蘋果”);
水果。添加(2,“橙色”);
水果。加(3,“香蕉”);
水果。添加(4,“菠蘿”);
//因為引入了泛型,所以不需要將鍵從Object轉換為int,值的集合也是如此。
水果中的foreach(int I。鑰匙)
{
控制臺。WriteLine(“鍵為:{0}值為:{1}“,I,fruit);
}
//刪除指定的鍵、值
水果。刪除(1);
//確定是否包含指定的鍵。
如果(果。contains key(1))
{
控制臺。WriteLine(“包含此鍵“);
}
//清除集合中的所有對象
水果。clear();
}
//數組列表
系統。集合。數組列表=新系統。collections . ArrayList();
列表。加(1);
列表。添加(2);
for(int I = 0;我& lt列表。數數;i++)
{
系統。console . WriteLine(list【I】);
}
//列表
//聲明壹個列表對象,僅添加字符串參數。
列表& lt字符串& gtnames =新列表& lt字符串& gt();
名字。添加(“喬峰”);
名字。加(“歐陽鋒”);
名字。add(“wasp“);
//遍歷列表
foreach(名稱中的字符串名稱)
{
控制臺。WriteLine(名稱);
}
//在列表中插入元素
名字。插入(二、“張三豐”);
//移除指定的元素。
名字。清除(“黃蜂”);
//哈希表
系統。Collections . Hashtable table =新系統。collections . Hashtable();
桌子。add(“table 1“,1);
桌子。Add(“表2“,2);
系統。collections . IDictionaryEnumerator d = table。get enumerator();
while(d . MoveNext())
{
系統。console . WriteLine(d . entry . key);
}
//隊列
系統。Collections.Queue隊列=新系統。collections . Queue();
排隊。入隊(1);
排隊。入隊(2);
系統。控制臺。WriteLine(隊列。peek());
while(排隊。計數& gt0)
{
系統。控制臺。WriteLine(隊列。出列());
}
//SortedList
系統。Collections . SortedList list =新系統。collections . sorted list();
列表。add(“key 2“,2);
列表。add(“key 1“,1);
for(int I = 0;我& lt列表。數數;i++)
{
系統。console . WriteLine(list。GetKey(I);
}
//堆棧
系統。Collections . Stack stack =新系統。collections . Stack();
堆棧。推送(1);
堆棧。推送(2);
系統。控制臺。WriteLine(堆棧。peek());
while(堆棧。計數& gt0)
{
系統。控制臺。WriteLine(堆棧。pop());
}