arraylist是線性資料結構----對應的泛型線性結構list
泛型集合list
為什麼使用泛型?
1.泛型集合比非泛型集合對於資料這一塊來說,是安全的.沒有髒資料
2.在一定資料量的前提下,泛型比非泛型寫入資料和讀取資料要快的多
3.泛型集合處理資料快的原因是少了裝箱和拆箱的操作
arraylist al = new arraylist();
al.add(1);
al.add(2);
al.add("3");
foreach (var item in al)
//初始化list集合,限定內部資料僅為int
listlist = new list();
list.add(1);
list.add(2);
"3"); 錯誤,資料型別不匹配
int arrs = ;
//char chars = ;
list.addrange(arrs);
console.writeline(list.count);
range
//雜湊表(字典)key--value
//hashtable
dictionary
//key唯一,key不能對應多個value,但是value可以對應多個key
student s1 = new student("劉德華1", 9527, 95.8f);
student s2 = new student("劉德華2", 9527, 95.8f);
student s3 = new student("劉德華3", 9527, 95.8f);
hashtable ht = new hashtable();
//新增key-value
ht.add(1, s1);
ht.add(2, s2);
ht.add(3, s3);
ht.add(4, s3);
//遍歷所有的鍵(1)
foreach (var item in ht.keys)
//遍歷所有的值(2)
foreach (var item in ht.values)
//遍歷3全部key-value
dictionaryentry
//字典實體-->內部的內容
foreach (dictionaryentry item in ht)
:",key,values.stu_name);
}//遍歷4
idictionaryenumerator ide = ht.getenumerator();
while (ide.movenext())
//指定乙個key移除key-value
ht.remove(3);
//判斷雜湊表中是否存在某個key,存在返回true
if (ht.containskey(3))
//清除全部的key-value
ht.clear();
student s1 = new student("劉德華1", 9527, 95.8f);
student s2 = new student("劉德華1", 9526, 99.8f);
student s3 = new student("劉德華3", 9529, 92.8f);
listlist = new list();
list.add(s1);
list.add(s2);
list.add(s3);
list.remove(s1);
foreach (student s in list)
//對於sort來說返回-1位置不會發生變化
//返回1,交換順序
list.sort();
list.reverse();
int i = s1.compareto(s2);
int i2 = s2.compareto(s3);
console.writeline(i);
console.writeline(i2);
string stu1 = "1"; //49
string stu2 = "2"; //50
console.writeline(stu1.compareto(stu2));
//1 前面的比後面的大
//-1 前面的比後面的小
//0int i1 = s1.compareto(s2);
int i2 = s2.compareto(s3);
console.writeline(i1);
console.writeline(i2);
foreach (student stu in list)
arraylist al = new arraylist();
text t1 = new text("1");
text t2 = new text("1");
al.add(t1);
al.add(t2);
al.remove(t1);
foreach (text tt in al)
//stack--堆疊
stack
int a = 10;
int b = 20;
int c = 30;
stack sk = new stack();
sk.push("a");
sk.push("b");
sk.push("c");//棧頂資料
//棧的長度
console.writeline(sk.count);
string str = (string)sk.pop(); //取得棧頂資料,並把棧頂資料刪除
console.writeline(sk.count);
//返回不移除
console.writeline(sk.peek());//取得棧頂資料,不刪除
//判斷棧內是否存在某個元素
if (sk.contains("c"))
//清空棧
sk.clear();
//當空棧的時候,不要進行pop和peek的操作,會出現異常
sk.getenumerator()
foreach (var item in sk)
//佇列queue
queue que = new queue();
//進隊
que.enqueue("a");
que.enqueue("b");
que.enqueue("c");
//出隊,移除並返回隊頭元素
console.writeline(que.dequeue());
//返回隊頭元素不移除
console.writeline(que.peek());
//判斷佇列是否包含某個元素
console.writeline(que.contains("a"));
object objs = que.toarray();
//如何將object陣列轉換到arraylist
arraylist al = new arraylist(objs);
console.writeline(al.count);
console.writeline(al[0]);
//整型陣列
int arr = ;
arr[0] = 22;
arr[1] = 33;
//索引器
classindex ci = new classindex();
ci[0] = 100;
ci[1] = 200;
ci[2] = 222;
ci[3] = 300;
ci[4] = 4;
ci[9] = 9;
for (int i = 0; i < ci.length; i++)
console.writeline(ci[10]);
//foreach (int i in ci)
// /**
* 索引器
* 作用:讓物件具有快速訪問元素的能力
* * 索引器和陣列的區別:
* 1.索引器的索引型別(index)不限定為整數
* 2.索引器支援方法過載
* 3.索引器實際上跟屬性是一樣的,也屬於特殊的方法
* 同樣具備set和get訪問器
* * 索引器和屬性的區別:
* 1.索引器是以關鍵字this來標識的,屬性數任意字元,
* 首字母大寫
* 2.索引器可以過載,屬性不能
* 3.索引器是可以有引數的,但是屬性沒有
* 4.索引器不能用static修飾,但是屬性可以
*/namespace _14classcode
}//定義索引器
public int this [int index]
}get
return intarray[index];}}
}}佇列和棧的應用:判斷乙個字串是否是回文字串
string str =console.readline();
starks=new stark();
queueque=new queue();
for(int i;is.push(str[i]);
que.enqueue(str[i]);
}bool ishui=true;
while(s.count>0)
}console.writeline("是否是回文字串"+ishui);
C 集合 泛型集合
非泛型集合的類和介面位於system.collections命名空間。泛型集合的類和介面位於system.collections.generic命名空間。普通集合 arraylist 值 有序不唯一 hashtable key 必須唯一 可為空 不能為null value 可重複 能為空和null ...
C 泛型 泛型集合Dictionary
在system.collections.generic命名空間中,與arraylist相對應的泛型集合是list,與hashtable相對應的泛型集合是dictionary,其儲存資料的方式與雜湊表相似,通過鍵 值來儲存元素,並具有泛型的全部特徵,編譯時檢查型別約束,讀取時無須型別轉換。本儲存的例子...
C 泛型集合
集合是oop中的乙個重要概念,c 中對集合的全面支援更是該語言的精華之一。為什麼要用泛型集合?在c 2.0之前,主要可以通過兩種方式實現集合 a.使用arraylist 直接將物件放入arraylist,操作直觀,但由於集合中的項是object型別,因此每次使用都必須進行繁瑣的型別轉換。b.使用自定...