如题所述
第1个回答 2022-07-25
1、数组在创建的时候就固定大小;而对于ArrayList,只需要创建此对象,不需要指定大小,因为他会在加入或删除元素时自动地调整大小。
ArrayList如何自动调整大小:ArrayList在存东西之前会判断一次:看看下标索引,有没有到达初始化长度最大索引的临近位置,如果到了,它就新建一个临时数组长度为当前数组长度的1.5倍,然后在把当前数组内容拷贝到临时数组里面去,最后在把当前数组引用指向临时数组引用,这样就完成当前数组的扩容了
2、存放对象给数组时必须指定索引,如果指定的索引超过了创建数组时的索引大小,会报 ArrayIndexOutOfBoundsException 即数组索引越界异常;而对于ArrayList,可以用add(Object)的形式让它自行管理大小。
3、数组使用的是特殊的语法;ArrayList是个普通对象,所以不会有特殊的语法。
其实ArrayList的底层数据结构就是一个数组,所以在已知所要创建数组需要的长度的前提下,使用数组在性能上可以有一定的提升。
参考书籍:《Head First Java》