说到这两个的差别我们想到的首先就应该是这两个集合的性质有相对较大的区别,List就像是一个火车,ArrayList就像是自己家的小轿车,List对于装载的事物有限制一开始必须在泛型定义好的事物,就是拉货物的火车车厢中都几乎是货物,
而小汽车是自家的你想拉啥就拉啥,ArrayList就充当小轿车的角色,但是其相对速度 对比火车较差,
在编程中,我们对于ArrayList尽量能不用就不用,由于他什么东西都放,所以往往会导致,你无法用特定的类型进行接收,因为其取出时object类型需要强转为你需要的类型
同时ArrayList和List主要差别为装箱和拆箱的问题
ArrayList:需要首先将类型转变为Object也就是装箱的问题,然后再将Object转换为其所对应的类型也就是拆箱的操作
List:因为泛型中指定了类型所以其不需要进行装箱拆箱操作,效率也就相对提升
List和ArrayList的区别
1.list性能较高,ArrayList性能较低
2.list一次存储中只能存储泛型中的类型,ArrayList在一次存储中任何类型的数据
3.List中获取值取出的是泛型中发的类型,因为ArrayList对元素没有限制,系统会将中获取的值当object类型的数据,
如果想获取到其中的内容需要进行
4. List在使用时候需要导入的using指令为using System.Collections.Generic;
ArrayList在使用的时候需要导入的using指令为using System.Collections;
5.List属于泛型集合 ArrayList属于非泛型集合
例子如下:
ArrayList:
/*一:ArrayList集合*/ //1.首先创建对象 ArrayList arr=new ArrayList(); //使用Add()方法添加元素,对元素类型没有限制 arr.Add (12); arr.Add ("1234"); arr.Add (12.7f); //使用 /下标/ 来获取指定位置的元素 Console.WriteLine ("arr[0]="+arr[0]); //获取当前数组的数量 int count=arr.Count; //使用insert()方法向指定下标位置插入元素 arr.Insert(1,"老张"); Console.WriteLine ("arr[1]="+arr[1]); //使用Remove()方法从数组中删除指定元素 arr.Remove("老张"); Console.WriteLine ("arr[1]="+arr[1]); //使用RemoveAt()方法,将指定下标位置的元素删除 arr.RemoveAt(0); Log (arr); //判断指定元素中是否存在当前数组中 bool b=arr.Contains("老王"); if (b) { Console.WriteLine ("老王在数组中"); } else { Console.WriteLine ("老王不在数组中!!!!"); }
List:
//1.首先创建对象 List<string> list=new List<string>(); //使用Add()方法添加元素,只能添加字符串类型的元素 list.Add("123"); list.Add ("778"); //实用[下标]来获取指定位置的元素 Console.WriteLine ("arr[0]="+arr[0]); //获取当前数组中的元素的数目 int count1=arr.Count; //使用insert()方法向指定下标位置插入元素 arr.Insert(1,"老张"); Console.WriteLine ("arr[1]="+arr[1]); //使用Remove()方法从数组中删除指定元素 arr.Remove("老张"); //使用RemoveAr()方法删除指定下标位置的元素 list.RemoveAt(0); Console.WriteLine (list[0]); //Contains()判断指定元素是否存在在当前数组中 bool b1=list.Contains("老王"); if (b1) { Console.WriteLine ("老王在数组中!!!!"); } else { Console.WriteLine ("老王不在数组中!!!!"); } //进行集合的清空 list.Clear (); Console.WriteLine (list.Count);