ArrayList:
1.邏輯順序和物理順序都連續的線性表
2.基於數組來實現
Vector:
1.邏輯順序和物理順序都連續的線性表
2.基於數組來實現
LinkedList:
1.邏輯順序連續但是物理順序不一定連續的線性表
2.基於雙向鏈表來實現
聯繫:
1.ArrayList、LinkedList和Vector都是List集合下的常用類
2.ArrayList和Vector都是基於數組實現的,方法的實現也是大同小異
3.ArrayList和Vector都存在擴容問題
4.ArrayList和Vector默認初始化大小都爲
區別:
1.ArrayList的擴容是將容量變爲了原來的1.5倍,Vector的擴容時變爲原來容量的2倍
2.ArrayList的初始化採用的是延遲加載,當一次增加元素的時候纔會初始化成大小爲默認值的數組,Vector的初始化採用的時候立即加載,在創建對象的時候就創建了大小爲默認值的數組
3.ArrayList是線程不安全的,Vector是線程安全的。不考慮線程安全的情況時一般使用ArrayList,性能高,Vector線程安全讀讀互斥,因此性能偏低
4.ArrayList和Vector都支持隨機訪問,LinkedList不支持隨機訪問,在查詢情況多的場景下,ArrayList更適合使用
5.LinkedList進行增加和刪除操作的時間複雜度爲O(1),ArrayList增加刪除的時間複雜度是O(N),在增刪頻繁的情況下,LinkedList更適合使用