ArrayList和LinkedList都是List接口的實現類。主要區別如下:
最主要的區別是底層的數據結構不同:
1)ArrayList相當於一個動態數組,需要隨機訪問列表中的元素時,ArrayList的性能更高。
2)ArrayList是JDK1.2時增加的。
3)ArrayList在內存中分配連續的空間。
4)LinkedList采用的是鏈表式數據結構。
5)LinkedList在需要頻繁插入、刪除列表中元素時,性能高於ArrayList。
二者的聯系:
ArrayList和LinkedList都是不同步的,也就是不保證線程安全。
二者都實現了List接口。
綜上所述,在不考慮線程安全的前提下,需要隨機快速訪問元素時使用ArrayList;插入、刪除操作較多時使用LinkedList。