ArrayList想象成一种“会自动扩增容量的Array。
存储内容比较:
- Array数组可以包含基本类型和对象类型
- ArrayList却只能包含对象类型
Array数组在存放的时候一定是同种类型的元素。ArrayList就不一定了,因为ArrayList可以存储Object
空间大小比较:
- Array它的空间大小是固定的,空间不够时也不能再次申请,所以需要事前确定合适的空间大小。
- ArrayList的空间是动态增长的,如果空间不够,它会进行扩容
效率比较
- 数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单。
- 数组在俩数据中插入数据是很麻烦的,还有我们在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误
- Arraylist在内存中也是连续存储的,很方便的进行数据的插入和移除(比Array方便,但是不如linkedlist)