集合框架熟悉吗?
目录
集合框架熟悉吗?
看过一些源码 对Arraylist的源码理解?首先,Arraylist属于线性表的结构,他其实是JDK封装的可变长数组,它的默认长度是10,当仅当第一个元素填加进来以后,他会自动把他设置成10,然后后面再添加元素进来,其实每次都会先检查容量的大小,如果超过当前长度就会发生扩容。 Arraylist怎么扩容的?他就是底层调用c++将现在的长度变成原来的1.5倍,新数组长度等于旧数组长度加上旧数组长度右移1位。 Arraylist删除元素,比如说删除中间的一个元素,它会采用覆盖的形式将后面的元素依次往前挪,最后的一个元素就设置null,等着GC去回收掉。