C 集合與泛型集合

2022-07-07 07:36:10 字數 3808 閱讀 6226

看到這個標題,大家應該就知道有泛型集合,就有非泛型集合

既然都是集合,咱們今兒就簡單的來對比講解下

需要記住的不算太多,理解記憶、理解記憶

2017-11-0411:39:09

c# 泛型集合之非泛型集合類與泛型集合類的對應:

*****arraylist對應list      

***hashtable對應dictionary

*****queue對應queue

*****stack對應stack

sortedlist對應sortedlist

第一  : arraylist(非泛型集合)  與list(泛型集合)

arraylist 是陣列的複雜版本。arraylist 類提供在大多數 collections 類中提供但不在 array 類中提供的一些功能:

1.array 的容量是固定的,而 arraylist 的容量是根據需要自動擴充套件的。

2.arraylist 提供新增、插入或移除某一範圍元素的方法。在 array 中,您只能一次獲取或設定乙個元素的值。

3.使用 synchronized 方法可以很容易地建立 arraylist 的同步版本。而 array 將一直保持它直到使用者實現同步為止。

4.arraylist 提供將唯讀和固定大小包裝返回到集合的方法。而 array 不提供。

5.array 提供 arraylist 所不具有的某些靈活性:

a.可以設定 array 的下限,但 arraylist 的下限始終為零。

b.array 可以具有多個維度,而 arraylist 始終只是一維的。

c.特定型別(不包括 object)的 array 的效能比 arraylist 好,這是因為 arraylist 的元素屬於 object 型別,所以在儲存或檢索值型別時通常發生裝箱和取消裝箱。

d.要求乙個陣列的大多數情況也可以代之以使用 arraylist。它更易於使用,並且通常具有與 object 型別的陣列類似的效能。

6.array 位於 system 命名空間中;arraylist 位於 system.collections 命名空間中。

arraylist類物件方法:

1:add()向陣列中新增乙個元素,

2:remove()刪除陣列中的乙個元素

3:(int i)刪除陣列中索引值為i的元素

4:reverse()反轉陣列的元素

5:sort()以從小到大的順序排列陣列的元素

6:clone()複製乙個陣列

一:arraylist:

arraylist可以不用指定維數 可動態賦值  賦不同型別值

1 arraylist arraylist1 = new

arraylist();

2arraylist1.

3 arraylist1.add("a"

);4 arraylist1.add(1

);5 arraylist1.add("b"

);6 response.write(arraylist1[1]);

二:array:

array的容量是固定的 先指定大小 在賦值

1  array arraylist2 = array.createinstance(typeof(string), 6

);2 arraylist2.setvalue("

a", 0

);3 arraylist2.setvalue("

b", 1

);4 response.write(arraylist2.getvalue(1));

list泛型集合:

泛型集合list

泛型最重要的應用就是集合操作,使用泛型集合可以提高**重用性,型別安全和更佳的效能。

list的用法和arraylist相似,list有更好的型別安全性,無須拆,裝箱。

在泛型定義中,泛型型別引數「」是必須指定的,其中t是定義泛型類時的佔位符,其並不是一種型別,僅代表某種可能的型別。在定義時t會被使用的型別代替。泛型集合list中只能有乙個引數型別,「」中的t可以對集合中的元素型別進行約束。

eg:list新增、刪除、檢索元素的方法和arraylist相似,明顯的特點是不需要像arraylist那樣裝箱和拆箱。

1 list < student > students = new list < student >();

2 student stu1 = new

student();

3 stu1.name = "

陸小鳳"

;4 stu1.number = "

0801";

5 stu1.score = 20

;6 student stu2 = new

student();

7 stu2.name = "

西門吹雪";

8 stu2.number = "

0802";

9 stu2.score = 23;10

students.add(stu1);

11students.add(stu2);

12 console.writeline("

集合中的元素個數為

", students.count);

13foreach (student stu in

students)

14/t/t

", stu.name, stu.number, stu.score);16}

17students.remove(stu1);

18 console.writeline("

集合中的元素個數為

", students.count);

19 console.readline();

list和arraylist的區別

list和arraylist的相同點:新增元素、刪除元素、通過索引訪問元素方法相同。

list和arraylist的不同點:

arraylist可以新增任意型別元素;list對新增的元素具有型別約束;

arratlist新增時裝箱,讀取時拆箱;list不需要裝箱,拆箱操作;

1

//建立person物件

2 person p1 = new person("

張三", 30

);3 person p2 = new person("

李四", 20

);4 person p3 = new person("

王五", 50);5

//建立型別為person的物件集合

6 list < person > persons = new list < person >();7//

將person物件放入集合

8persons.add(p1);

9persons.add(p2);

10persons.add(p3);

11//

輸出第2個人的姓名

12 console.writeline(persons[1

].name);

13foreach (person p in

persons)

14/t

", p.name, p.age);

16 }

今天暫時到這裡,慢慢理解,我腦子也腦子有點兒不夠用了,頭疼過去過去就好了

2017-11-04  11:40:11

c 集合與泛型集合

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

C 集合 泛型集合

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

C 集合與泛型

1 什麼是集合 集合類時為保障資料的安全儲存和訪問設計的,常見的集合類如下 arraylist 使用大小可按需動態增加的陣列實現system.collections.ilist 介面。sortedlist 表示鍵 值對的集合,這些鍵 值對按鍵排序並可按照鍵和索引訪問。queue 表示物件的先進先出集...