1. 程式人生 > >Vector ArrayList LinkedList區別 深度分析 自我總結

Vector ArrayList LinkedList區別 深度分析 自我總結

Vector ArrayList LinkedList區別

1.      同步性

Vector 執行緒安全備註(原始碼中,Vector底層方法上面有加synchronized)

ArrayList LinkedList 執行緒不安全

2.      資料增長模式

ArrayList Vector 是使用Objcet陣列來儲存

當元素需要擴充套件的時候  Vector長度會自動增長一倍,ArrayList增加50%長度

每次修改長度  會增加資源開銷,所以若資料了過大  選擇Vector

3.      查詢,插入刪除效率分析

ArrayList Vector 對於插入刪除 效率很快,通過索引操作,查詢速度慢

LinkedList 查詢速度慢,插入刪除慢

查詢方面  LinkedList 要移動指標,查詢慢

增刪方面  ArrayList Vector 要重排資料,所以增刪慢

4.      資料結構區別

ArrayList Vector 是實現動態陣列的資料結構

Vector 是連結串列的資料結構

補充知識點:

ArrayList 初始容量是10 超過以後會進行擴容

擴容公式: (舊容量*3)/2+1