028 Array 和 ArrayList 有何区别?

答:

根本区别:Array 是数组;ArrayList 是集合


  • 存储内容比较: Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
  • 空间大小比较: array 是数组,arraylist 是集合,集合可以根据自身变化扩大,而数组创建后不可以变化。
  • 方法上的比较: ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
  • Array类型的变量在声明的同时必须进行实例化(至少得初始化数组的大小),而ArrayList可以只是先声明。
  • 对于基本数据类型,集合(ArrayList)使用自动装箱来减少编码工作量;但是Array相对较慢。

拓展:

自动装箱:基本数据类型转成包装类 手动装箱:例 Integer num = new Integer(5); 或者 Integer num = 5;

自动拆箱:包装类转成基本数据类型 手动拆箱:例 Integer integer = 5;

int num = integer;

Array 和 ArrayList 的相似点


  • 都具有索引(index),即可以通过index来直接获取和修改任意项。
  • 他们所创建的对象都放在托管堆中。
  • 都能够对自身进行枚举(因为都实现了IEnumerable接口)。

概念:


  • Array 即数组,声明方式可以如下:
  • 定义一个 Array 时,必须指定数组的数据类型及数组长度,即数组中存放的元素个数固定并且类型相同。
  • ArrayList 是集合,长度动态可变,会自动扩容。不使用泛型的时候,可以添加不同类型元素。
  • ArrayList 是父类(List)方法(无自己的方法)


看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!