一、为什么使用集合?
数组的长度是固定的,对数组中的元素进行动态添加和删除的时候很麻烦。集合可以更好的进行对元素添加和删除
二、ArrayList集合:
1.类似于数组,但是可以直观的动态维护。
2.位于System.Collections命名空间里面
3.ArrayList是动态可维护的,所以在声明的时候可以不指定大小
4.声明ArrayList的语法:
(1)ArrayList arr = new ArrayList();
(2)ArrayList arr = new ArrayList(2);
5.给集合中添加元素:
add()
eg:arr.Add(“值”);
6.获取集合中的指定元素(根据集合的下标获取)
arr[0];
7.遍历集合中的元素:
(1)使用for循环来获取
for (int i = 0; i < array.Count;i++ ) {
Console.WriteLine(“元素是:”+array[i]);
}
(2)使用foreach来获取
foreach(object o in array){
Console.WriteLine(“元素是:”+o);
}
8.获取集合的长度:
集合名.Count;
9.删除集合中的元素:
(1)根据索引删除
RemoveAt(int index)
eg:arr.RemoveAt(1);
(2)删除指定对象名的元素
Remove(object value);
eg:arr.Remove(“张三”);
(3)清空集合里面所有的元素:
Clear();
arr.Clear();
10.需要注意的是,将ArrayList里面的元素删除时,集合的索引会随之改变。
三、HashTable集合:
1.存储的是键值对形式的数据
2.所属的命名空间是:System.Collections;
3.声明HashTable集合:
HashTable ht = new HashTable();
4.给集合中添加元素:
Add(object key,object value);
key:键
value:值
eg:ht.Add(1,“一”);
5. 获取集合中的元素:
ht[键]
eg:ht[1];
6.遍历hashTable集合:
(1)遍历键:
foreach(object o in ht.Keys){
Console.WriteLine(o);
}
(2)遍历值:
foreach(object o in ht.Values){
Console.WriteLine(o);
}
7.删除HashTable集合中的元素:
Remove(); //根据键删除值
eg:ht.Remove(1);
四、泛型集合List:
1.可以对集合中的元素类型进行约束
2.T代表元素的类型
3.声明泛型集合:
List list = new List();
4.获取元素,添加元素,删除元素,遍历元素均和ArrayList一样。
5.List和ArrayList的区别:
(1)相同点:添加、删除、访问、遍历元素都一样
(2)异同点:List对保存的元素做类型约束,而ArrayList不限制类型。List添加、读取元素的时候无需做装箱、拆箱操作,而ArrayList在添加和读取元素的时候需要装箱和拆箱操作。
五、Dictionary泛型集合:
1.存放的是键值对的元素,声明的同时约束键和值的类型。
2.声明:
Dictionary<int,string> dic = new Dictionary<int,stirng>();
3.给集合里面添加元素:
Add()方法:
dic.Add(1,“中国”);
4.根据键来获取值:
dic[1];
5.根据键删除值:
dic.Remove(1);
6.遍历的集合:
foreach(值的类型 遍历 in 集合.Values){
Console.WriteLine(s);
}
六、泛型类:
1.创建泛型类:
public class Test{
public T id; //id的类型取决于Test中的T
}
2.调用泛型类:
Test t = new Test();
t.id = 10; //值是int类型
3.泛型的优点:
(1)性能高
(2)类型安全
(3)实现代码的重要