C 集合與泛型

2022-01-23 08:20:36 字數 3495 閱讀 2890

1、什麼是集合

集合類時為保障資料的安全儲存和訪問設計的,常見的集合類如下:

arraylist  使用大小可按需動態增加的陣列實現system.collections.ilist 介面。

sortedlist  表示鍵/值對的集合,這些鍵/值對按鍵排序並可按照鍵和索引訪問。

queue  表示物件的先進先出集合。

stack  表示物件簡單的後進先出集合。

hashtable  表示鍵/值對的集合,這些鍵/值對根據鍵的雜湊**進行組織。

集合類實現的介面如下:

icollection  定義所有非泛型集合的大小,列舉數和同步方法。

icomparer  公開一種比較兩個物件的方法。

ienumerable  公開列舉數,該列舉數支援雜器在非泛型集合上進行簡單迭代。

ilist  表示可按照物件單獨訪問的非泛型集合。

idictionary  表示鍵/值對的非通用集合。

idictionaryenumerator  列舉非泛型字典的元素。

2、sortedlist 可排序陣列集合

sortedlist 集合的初始化方式有兩種,包括泛型的和非泛型的。

sortedlist s1 = new sortedlist();   //

建立非泛型sortedlist 集合

sortedlists1 = new sortedlist(); //

建立泛型sortedlist 集合

private

static

void

keyandvalueout(sortedlist s1)

:\t", s1.getkey(i), s1.getbyindex(i)); //

獲取每個元素的鍵和值

} }

static

void main(string

args)

個", s1.count); //

輸出sortedlist 的元素個數

console.writeline("

容量:" +s1.capacity);

keyandvalueout(s1);

//遍歷輸出sortedlist 所有的鍵及其對應的值

3、 queue 訊息佇列集合

同 sortedlist 集合一樣,queue 佇列也有兩種初始化方式。

queue q = new queue();    //建立非泛型佇列

queueq = new queue();  //泛型佇列

static

void main(string

args)

console.writeline();

q.peek();

//返回佇列的開始處但不移除

q.dequeue(); //

移除並返回開始處

console.writeline("

將某元素踢出佇列後剩餘的元素如下所示。");

ienumerator myenumerator1 =q.getenumerator();

while

(myenumerator1.movenext())

console.writeline();

if (q.contains("

love

") == true

)

else

q.clear();

//移除所有物件

console.writeline("

該佇列所含元素總數為:

3、 stack 棧集合

和前兩種集合類一樣,stack 棧也有兩種初始化方式,非泛型和泛型。

stack st = new stack();  //非泛型堆疊

stackst = new stack();  //泛型堆疊

static

void main(string

args)

", st.count);

ienumerator myenumerator = st.getenumerator(); //

例項化能遍歷訪問堆疊中所有元素的 ienumerator 介面

console.writeline("

堆疊中的所有元素如下所示。");

while

(myenumerator.movenext())

st.pop();

//將第乙個元素彈出堆疊

ienumerator myenumerator1 =st.getenumerator();

console.writeline();

console.writeline(

"某元素彈出後堆疊中的剩餘元素如下所示。");

4、hashtable 雜湊表集合

與前面的三種集合不同的是,.net framework 本身沒有對hashtable 提供泛型,所以它的初始化方式只有一種。

hashtable ht = new hashtable();   //建立雜湊表集合

public

static

void

printkeysandvalues(hashtable myht)

console.writeline(

"-鍵- -值-");

//hashtable 中的每個元素都是鍵/值對,即不是鍵的型別,也不是值的型別,

//而是dictionaryentry 型別

c 集合與泛型集合

集合的命名空間 using system.collections 泛型的命名空間 using system.collections.generic 命名空間包含定義泛型集合的介面和類,泛型集合允許使用者建立強型別集合,它能提供比泛型集合更好的型別安全性和效能。集合的事例 arraylist list...

C 集合與泛型集合

看到這個標題,大家應該就知道有泛型集合,就有非泛型集合 既然都是集合,咱們今兒就簡單的來對比講解下 需要記住的不算太多,理解記憶 理解記憶 2017 11 0411 39 09 c 泛型集合之非泛型集合類與泛型集合類的對應 arraylist對應list hashtable對應dictionary ...

C 集合 泛型集合

非泛型集合的類和介面位於system.collections命名空間。泛型集合的類和介面位於system.collections.generic命名空間。普通集合 arraylist 值 有序不唯一 hashtable key 必須唯一 可為空 不能為null value 可重複 能為空和null ...