集合:ArrayList类,是命名空间System.Collections下的一部分,它是使用大小可按需动态增加的数组实现IList接口,但是ArrayList不是类型安全的。

  泛型集合:list类,是对ArrayList的一个完善。通常情况下建议使用泛型集合,因为这样可以获得类型安全的直接优点。

  Ilist接口:为ArrayList和List定义了一些操作方法。

    • 对于泛型技术我个人理解也不是很深入,通过这些天不断地使用,说一下我的理解。
      泛型是.NET 2.0引进的新技术,它允许我们定义代码模板,然后使用这个模板声明变量。它所在的位置大多位于System.Collections.Generic中。
      泛型引入目的:
      创建强数据类型的集合。因为泛型集合是强类型化得,所以其处理速度要比基于继承的集合模型快,代码中使用集合类的任何地方可以考虑使用泛型集合代替。
      泛型通常采用List(Of T)的形式,这里List是类型(或者类)的名字,字母T类似参数的占位符。

        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:泛型集合可以作为类中的一个属性。使用泛型集合必须实例化。

posted on 2014-03-31 23:10  Fighting二零一四  阅读(181)  评论(0编辑  收藏  举报