arrayList和linkedList的区别和扩容
5,848
2
3
本题是面试常考题之一,但是很多同学没有真实理解或使用过相应的类,只靠记忆。在面试的时候,容易被问住。
从实现看:LinkedList底层实现是双链表;ArrayList底层实现是动态数组。即LinkedList使用的离散内存,而ArrayList使用的是连续内存空间
从扩容看:LinkedList是离散空间,不需要主动扩容。ArrayList当内存空间不足的时候,需要主动扩容,jdk1.7之后的扩容尺寸为原尺寸的1.5倍。比如默认长度为10,当数据长度大于10时,发生扩容,扩容后大小为10+10/2 = 15