- 实现算法不同,
ArrayList
使用数组,而LinkedList
使用链表 - LinkedList is faster in
add
andremove
, but slower inget
.
ArrayList
在remove
元素的时候,使用了System.arraycopy
来复制所有的元素,性能当然下降ArrayList
在add
元素的时候,存在扩容
的操作,依然需要System.arraycopy
所有的元素get(int index)
操作LinkedList
需要计算元素的索引才能找到,而ArrayList
内部是素组,直接值通过下表访问即可,无需额外的计算