集合:ArrayList类,是命名空间System.Collections下的一部分,它是使用大小可按需动态增加的数组实现IList接口,但是ArrayList不是类型安全的。
泛型集合:list类,是对ArrayList的一个完善。通常情况下建议使用泛型集合,因为这样可以获得类型安全的直接优点。
Ilist接口:为ArrayList和List定义了一些操作方法。
ArrayList arraylist = new
ArrayList();
arraylist.Add("sunzhen");
arraylist.Add("s");
arraylist.Add("z");
arraylist.RemoveAt(1);
Response.Write(arraylist[0].ToString());
Response.Write(arraylist[1].ToString());
Response.Write("ArrayList必须通过创建一个实例必须进行实例化,不能像数组那样直接赋值通过ADD()方法添加元素,然后通过removeat方法删除元素,它的索引会自动调整");
Response.Write("下面来讨论哈希表的使用,哈希表有两个参数(Object key,Object value)");
Hashtable students = new
Hashtable();
Men s = new
Men("sunzhen");
Men l = new
Men("liudehua");
Men z = new
Men("zhoulunfa");
Car c = new
Car("w");
students.Add(s.GetName,s);
students.Add(c.GetName,c);
Men
a=(Men)students["sunzhen"];
Response.Write(a.Think());
a.Think();
Car car =
(Car)students["w"];
Response.Write(car.Run());
List<Men> men = new
List<Men>();
Response.Write("使用这个集合存储Men对象,再将它遍历出来,此时无须类型转换,保证了类型的安全性。这种集合类型叫做泛型集合");
Response.Write("泛型的性能高,ArrayList添加元素时都是
object类型,如果添加一个值类型,就需要把它转化为引用类型,这里就需要装箱,拆箱,而泛型就无须这个操作");
Response.Write("Dictionary泛型集合");
Dictionary<String, Men> mm = new Dictionary<string,
Men>();
Men sun = new
Men("sunyanzi");
mm.Add(sun.GetName,sun);
Men suns
= mm["sunyanzi"];
suns.Think();
1:ArrayList集合可以动态的维护,访问一个元素时需要类型转换
2:ArrayList集合删除元素时,可以通过索引或者对象名访问
3:哈希表类似于生活中的字典,它的元素都是以键/值存在的。访问哈希表的元素同样需要类型转换,遍历哈希表,只能遍历他的Value,而不是整个元素对象。
4:哈希表不能通过索引访问,只能通过键访问值。
5:泛型集合可以约束它所存储的对象的类型,访问集合中的元素时无须类型转换
6:List<T>和ArrayList的使用方法类似,Dictionary<K,V>访问元素时无须类型转换。
7:泛型集合可以作为类中的一个属性。使用泛型集合必须实例化。
原文:http://www.cnblogs.com/fight2014/p/3637089.html