1.system.colloctions中表示集合的行為的介面有:
1)icollection
定義所有集合的大小、列舉數和同步方法。派生於ienumerable
它定義了集合類最基本的行為,所有的集合類都實現了這個介面(基介面)
但是它的行為太過基本:主要就是乙個count屬性,單獨實現它沒有太大意義
2)ienumerable
公開列舉數,該列舉數支援在集合上進行簡單迭代
它只有乙個方法 getenumerator(),該方法可以返回乙個ienumerator介面,通過它可以遍歷集合
基本上所有的集合類都實現了這個介面
3)ilist
ilist實現是可排序且可按照索引訪問其成員的值的集合,它本身實現了icollection和ienumerable介面
是所有列表的抽象基類。ilist 實現有三種類別:唯讀、固定大小、可變大小。
4)idictionary
idictionary實現是鍵/值對的集合,它本身實現了icollection和ienumerable介面
是鍵/值對的集合的基介面。idictionary 實現有三種類別:唯讀、固定大小、可變大小。
idictionary可稱為字典、對映或雜湊表,它根據鍵(任意型別)來訪問值
2.system.collections中可以直接使用的集合類有:
1)arraylist
實現了介面:ilist、icollection、ienumerable
只要集合未被修改,arraylist 就可安全地同時支援多個讀取器
隨著向 arraylist 中新增元素,容量通過重新分配按需自動增加(2倍增加)
如果需要建立乙個物件陣列,但不能預先知道陣列的大小,就可以使用arraylist
arraylist把所有元素都當作object物件引用,因而在訪問arraylist的元素時要進行型別轉換
優點:動態改變大小、靈活方便的插入和刪除元素、可排序
缺點:插入時效能不如陣列、不是強型別的
2)bitarray
實現了介面:icollection、ienumerable
管理位值的壓縮陣列。
3)hashtable
實現了介面:idictionary、icollection、ienumerable
可以向hashtable中自由新增和刪除元素,有些像arraylist,但沒有那麼大的效能開銷
4)sortedlist
實現了介面:idictionary、icollection、ienumerable
sortedlist兼顧了arraylist和hashtable的優點,可按鍵值來排序
5)queue
實現了介面:icollection、ienumerable
queque是佇列,先進先出的訪問各個元素
可以呼叫queque物件的getenumerator()方法,得到ienumerator物件,來遍歷佇列中的各個元素
6)stack
實現了介面:icollection、ienumerable
stack是堆疊,後進先出的訪問各個元素
可以呼叫stack物件的getenumerator()方法,得到ienumerator物件,來遍歷堆疊中的各個元素
例如,簡單實現遍歷arraylist的個項
protected
arraylist subordinates;
ienumerator enumsub
=subordinates.getenumerator() ;
while
(enumsub.movenext())
C 中Math類集合
1.math.abs已過載。返回指定數字的絕對值。2.math.acos返回余弦值為指定數字的角度。3.math.asin返回正弦值為指定數字的角度。4.math.atan返回正切值為指定數字的角度。5.math.atan2返回正切值為兩個指定數字的商的角度。6.math.bigmul生成兩個 32...
C 中的一些集合類
1.array 陣列,用於儲存一組資料,建立陣列需要明確陣列儲存的型別及長度,一旦確定不可改變,沒有方便的新增,刪除,查詢方法。特點 根據下標 索引 查詢速度非常快,時間複雜度 增加 o n 刪除 o n 2 修改 n 2 查詢 o 1 2.arraylist 動態陣列,可以根據元素個數的多少進行長...
C 集合介面與集合類
c 開發經常用到.net框架為我們提供的集合介面和集合類,接下來做乙個總結,如有差錯,希望各位大神指正。首先是集合介面,自己畫了一張圖 嘿嘿,有點醜 來說明集合介面的繼承關係。個人覺得,了解集合介面,首先要把握他們的繼承關係。如上圖,所有的集合介面和集合類都繼承 實現ienumerable介面。ie...