三者都屬於List的子類,方法基本相同。比如都可以實現數據的添加、刪除、定位以及都有迭代器進行數據的查找,但是每個類
在安全,性能,行為上有着不同的表現。
Vector是Java中線程安全的集合類,如果不是非要線程安全,不必選擇使用,畢竟同步需要額外的性能
開銷,底部實現也是數組來操作,再添加數據時,會自動根據需要創建新數組增加長度來保存數據,並拷貝原有數組數據
ArrayList是應用廣泛的動態數組實現的集合類,不過線程不安全,所以性能要好的多,也可以根據需要增加數組容量,不過與
Vector的調整邏輯不同,ArrayList增加50%,而Vector會擴容1倍。
LinkedList是基於雙向鏈表實現,不需要增加長度,也不是線程安全的
Vector與ArrayList在使用的時候,應保證對數據的刪除、插入操作的減少,因為每次對改集合類進行這些操作時,都會使原有數據
進行移動除了對尾部數據的操作,所以非常適合隨機訪問的場合。
LinkedList進行節點的插入、刪除卻要高效的多,但是隨機訪問對於該集合類要慢的多。

ps:關注一下本人公眾號,每周都有新更新哦!
