看到這個標題,大家應該就知道有泛型集合,就有非泛型集合
既然都是集合,咱們今兒就簡單的來對比講解下
需要記住的不算太多,理解記憶、理解記憶
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 = newarraylist();
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 表示物件的先進先出集...