说到这两个的差异咱们想到的首先就应该是这两个集合的性质有相对较大的区别,List就像是一个火车,ArrayList就像是本身家的小轿车,List对于装载的事物有限制一开始必须在泛型定义好的事物,就是拉货物的火车车箱中都几乎是货物,编程
而小汽车是自家的你想拉啥就拉啥,ArrayList就充当小轿车的角色,可是其相对速度 对比火车较差,数组
在编程中,咱们对于ArrayList尽可能能不用就不用,因为他什么东西都放,因此每每会致使,你没法用特定的类型进行接收,由于其取出时object类型须要强转为你须要的类型性能
同时ArrayList和List主要差异为装箱和拆箱的问题spa
ArrayList:须要首先将类型转变为Object也就是装箱的问题,而后再将Object转换为其所对应的类型也就是拆箱的操做对象
List:由于泛型中指定了类型因此其不须要进行装箱拆箱操做,效率也就相对提高blog
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属于非泛型集合字符串
例子以下:string
ArrayList:it
/*一: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:io
//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);