首頁  >  文章  >  Java  >  ArrayList、LinkedList與Vector三者有什麼差別

ArrayList、LinkedList與Vector三者有什麼差別

王林
王林轉載
2020-08-06 16:01:034814瀏覽

ArrayList、LinkedList與Vector三者有什麼差別

1、從儲存資料結構分析

(推薦教學:java入門教學

ArrayList:陣列

Vector:陣列LinkedList:雙向鍊錶

陣列:可以根據下標快速找到,所以大部分情況下,查詢快。 ArrayList、LinkedList與Vector三者有什麼差別

但是如果要進行增刪操作的時候,會需要移動修改元素後面的所有元素,所以增刪的開銷比較大,數組的對增刪操作的執行效率低。而採用陣列作為資料儲存結構的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中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除