C 高階技術1 集合類(1)

2021-05-25 06:34:36 字數 1910 閱讀 4932

對於c#中的初學者而言,先了解四種集合就足夠了。

兩種普通集合 :arraylist hashtable

兩種泛型: listdictionary

一、arraylist

陣列相信樓主肯定了解過,陣列是有長度限制的。在使用陣列之前必須確定陣列的長度。但是我們很多

時候,是在程式執行過程中,才可以確定儲存資料的個數的。那麼,這個時候,就需要用到集合。

arraylist,位於system.collections命名空間下,也就是說,如果要使用arraylist,就必須

引入該命名空間。

該種集合也被稱為"動態陣列",原因就在於它的容量是可以根據需求按照一定的規律自動擴容的。

該種集合可以存入任意型別的資料,存入後,都一致轉變為了object型別。那麼對於值型別來說,

就是進行了一次裝箱操作,非常消耗效能。

簡單介紹一下它的用法

add():向集合中新增元素,引數為變數名,有乙個整型返回值,表示該元素在集合中的索引。

remove():刪除集合中的元素,引數為變數名,無返回值。刪除後的集合,將重新排列集合中元素的索引。

removeat():刪除集合中元素,與上個方法不同的是,該種方法是按照索引來刪除的。引數為元素索引。

count:屬性。表示當前集合的元素數量。整型返回值。

capacity:屬性。表示當前集合中的容量。

trimtosize():壓縮集合容量。很多時候,當我們確定了不再向集合中新增元素的時候,我們要壓縮一下

集合容量,以避免造成空間的浪費。

另外,介紹一下它的讀取操作,因為存進去的元素都會變為object型別,所以讀取的時候需要進行型別

轉換。如果需要遍歷迴圈的話,因為該集合是按照元素的索引來進行訪問的,所以我們完全可以使用for迴圈

來進行遍歷。

c# codefor(int i = 0;i < 集合.count;i ++){}

二、hashtable

同arraylist一樣,也是位於system.collections命名空間下。

該種集合存的是乙個鍵值對。乙個鍵值對應乙個值。

所以,該種集合的訪問方式於arraylist不同,是按照鍵的值來進行訪問的。

add():新增元素。兩個引數,第乙個為鍵,第二個為值。

remove():刪除,引數為鍵值。

clear():清空集合中的所有元素。

keys:屬性。集合的鍵值集合。遍歷迴圈可以使用。

values:屬性。集合的值的集合。遍歷迴圈可以使用。

該集合存入的也是自動轉換為object型別,所以讀取的時候需要進行型別轉換。

遍歷迴圈時,需要利用foreach。

c# code

foreach(string key in list.keys){}

foreach(object value in list.values){}

三、list

位於system.collections.generic命名空間下。

為arraylist的泛型版本。

該種集合嚴格限制存入的元素型別。

t的意思就是表示可以存入該集合中的元素型別。其他的不允許進入該集合。

一些用法與arraylist相同。

不同的是,讀取的時候,不再需要進行型別轉換,也就是說,減少了裝箱和拆箱的步驟,大大提高了

程式執行的效能。

四、dictionary

位於system.collections.generic命名空間下。

為hashtable的泛型版本。

該種集合也嚴格的限制存入元素的型別。

string表示的是存入的集合的元素的鍵值。宣告的時候必須指定。

value表示的值的型別。宣告的時候也必須指定。

其他用法與hashtable相同。

讀取不再需要進行型別轉換。

C 高階3 集合

1 裡式轉換 1 子類可以賦值給父類。2 如果父類中裝的是子類的物件,那麼可以將這個父類強轉為子類的物件 3 子類物件可以呼叫父類中的成員,但是父類只能呼叫自己的成員。用is或as來使用 如 父類為person類 子類為student類 person p new student p is stude...

java 1 集合框架

集合框架中的類主要分為三類,list系列 該系列中的類按照索引值運算元據,允許存放重複的元素。set系列 該系列中的類按照索引值來運算元據,不允許存放重複的元素。map系列 該系列中的類按照名稱來運算元據,名稱不允許重複,值可以重複,乙個名稱對應唯一的值。1.list系列 主要有arraylist ...

集合11 集合 Collections工具類

collections 操作collection map的工具類 arraylist list new arraylist list.add 123 list.add 456 list.add 456 list.add 89 list.add 23 system.out.println list 1...