java数据结构 array与ArrayList的不同

“ArrayList是会自动扩容array”

最显著的区别就是array是静态的对象引用,而ArrayList是动态类。

1.implementation (实现)
ArrayList是一个基于array来自Java集合类的类,一个接口 (API,Application programming interface)。 Array 本身是对象的reference(对象引用),它可直接做为函数返回值。
2.Flexibility(灵活性)
ArrayList是Java集合框架类的一员,可以称它为一个动态数组,可以在使用过程中增加或减小自己的长度。而array 是静态的,它做不到这些,array这个数据一旦被创建就无法更改它的大小。
3.Performance(性能)
array与ArrayList的性能基本一样,但在一些额外的功能上存在一定差别,主要体现在内存的使用上。在平常的索引中,二者是相同的。而在添加元素时发生长度变化,ArrayList会复杂与array,因为ArrayList在此过程中要完成创建一个新的array,再将之前的array的数据拷贝到这个新的array中。另外,在当二者存储相同数量的对象时,ArrayList所需要的内存也要比array大一些。因为对象的基本数据会附着在ArrayList和包装类上。
4.Dimension(维度)
ArrayList和array的另外一个重要的区别就是array可以使多维度的。你可以使用array设置一个二维数组或者三维数组。ArrayList并不支持允许你指定维度。

所以当你事先知道数组的长度,并且在使用过程中确定他的大小不会改变就使用array,否则请使用ArrayList。

你可能感兴趣的:(java入门)