一、数组
1、数组在内存中是连续存储的,所以它的索引速度是非常的快,赋值与修改元素也很简单,但是在数组的两个数据间插入数据也是很麻烦的
2、在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。
3、如果在声明数组时我们并不清楚数组的长度,就变的很棘手了。
4、数组定义时要写明类型,是字符串还是整形
二、ArrayList
1、ArrayList就是动态数组,可以动态的增加和减少元素。它的大小是按照其中存储的数据来动态扩充与收缩的。所以,我们在声明ArrayList对象时并不需要指定它的长度。
2、ArrayList继承了IList接口,所以它可以很方便的进行数据的添加,插入和移除.
3、可以存放任何类型的变量
4、ArrayList存在不安全类型与装箱拆箱
三、List
List类是ArrayList类的泛型等效类。它的大部分用法都与ArrayList相似,因为List类也继承了IList接口。最关键的区别在于,在声明List集合时,我们同时需要为其声明List集合内数据的对象类型。
参考资料: 数组、ArrayList和List的区别 http://www.studyofnet.com/news/585.html