array:数组是指一组数据的集合。
arrayList:ArrayList
是一个泛型类。ArrayList
相当于C++ 的vector
,用于存储对象。ArrayList
的长度是动态的,不受限制,可以存储任意多的对象,但是只能存储对象,不能存储原生数据类型例如int
。
相同点:
1:都具有索引,可以任意通过index直接获取或修改数据。
2:创建的对象都放在堆中。
3:都能够对自身进行枚举(因为都实现了IEnumerable接口)。
不同点:
1:在创建数组的时候必须指定数组大小及数据类型。
2:ArrayList的大小可以动态指定,其大小可以在初始化时指定,也可以不指定,也就是说该对象的空间可以任意增加
3:arrayList是array的复杂版本,能存放不同数据类型及对象。因为它里面存放的都是被装箱了的Object型对象,实际上ArrayList内部就是使用"object[] _items;"这样一个私有字段来封装对象的。