1、從儲存資料結構分析
(推薦教學:java入門教學)
ArrayList:陣列
Vector:陣列LinkedList:雙向鍊錶
陣列:可以根據下標快速找到,所以大部分情況下,查詢快。
但是如果要進行增刪操作的時候,會需要移動修改元素後面的所有元素,所以增刪的開銷比較大,數組的對增刪操作的執行效率低。而採用陣列作為資料儲存結構的ArrayList、Vector也存在這些特性,查詢速度快(可依下標直接取,比迭代查找更快),增刪慢。 鍊錶:增加和刪除元素方便,增加或刪除一個元素,只需處理結點間的引用即可。就像人手牽手連成一排,要增加或刪除某個人只要附近的兩個人換一個人牽手,對已經牽好手的人沒影響。無論在哪裡換人耗費的資源和時間都是一樣的。但是查詢不方便,需要一個個對比,無法根據下標直接找到。而採用鍊錶結構儲存的LinkedList也有這些特性,增刪方便,查詢慢(指的是隨機查詢,不是順序查詢)。
2、從繼承上分析
它們都實作了List接口,也就是說都實作了get(int location )、remove(int location)等「根據索引值來取得、刪除節點的函數」。
(影片教學推薦:
java影片教學)
陣列結構根據下標取值很容易,LinkedList雙向清單的實作也比較簡單,透過計數索引值實現,從鍊錶長度的1/2開始查找,下標大了就從錶頭開始找,小了就從錶尾開始找。
3、從並發安全性分析Vector:線程安全性
###ArrayList:非線程安全性######LinkedList:非線程安全性#########4、資料成長分析#########Vector:缺省的情況下,成長為原始陣列長度的一倍。說到預設,說明他其實是可以自主設定初始化大小的。 ######ArrayList:自動增長原數組的50%。 ###以上是ArrayList、LinkedList與Vector三者有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!