ArrayList问题
请问这个是什么意思? 为什么要New一个ArrayList
请问这个是什么意思? 为什么要New一个ArrayList
2019-08-07
ArrayList源码中最重要的就是数组的扩容,你知道数组一旦创建就不能改变容量了,但是List集合可以随便添加多少元素,那么用数组怎么实现list的呢,就是system.copy方法,复制!创建一个新的数组,默认长度是原数组的1.5倍,不够再扩1.5倍,直到达到Integer.MAX_VALUE为止,然后把原数组复制到新数组,这个复制可以指定索引,就是你可以指定从哪儿开始复制,复制在什么位置。搞懂这个基本上arraylist的方法就全搞懂了,比如删除Arr=[1,2,3,4,5]中的3就是把4后面的长度-3个元素复制到3的位置就完事了,如下。
System.arraycopy(Arr, 3, Arr, 4, size-3)
举报