底层实现是数组
ArrayList的默认初始化容量是10,每次扩容时候增加原先容量的?半,也就是变为原来的1.5倍
在增删时候,需要数组的拷?复制(navite ?法由C/C++实现)
底层实现是双向链表[双向链表?便实现往前遍历]
底层是数组,现在已少?,被ArrayList替代,原因有两个:
Vector所有?法都是同步,有性能损失。
Vector初始length是10 超过length时 以100%?率增?,相?于ArrayList更多消耗内存。
总的来说:查询多?ArrayList,增删多?LinkedList。
ArrayList增删慢不是绝对的(在数量?的情况下,已测试):
如果增加元素?直是使?add() (增加到末尾)的话,那是ArrayList要快
?直删除末尾的元素也是ArrayList要快【不?复制移动位置】
?于如果删除的是中间的位置的话,还是ArrayList要快!
但?般来说:增删多还是?LinkedList,因为上?的情况是极端的~
原文:https://www.cnblogs.com/l1ng14/p/13554686.html