1. 程式人生 > >Java常用容器對比

Java常用容器對比

ArrayList與Vector

ArrayList和Vector內部都是由陣列實現的,陣列實現的優點就是支援元素的隨機訪問(O(1)),但是在對元素進行插入和刪除操作時,需要向後或向前移動陣列,這樣導致插入和刪除的效率將會降低(O(n));

ArrayList的預設容量是10,擴容為原來的1.5倍;

Vector的預設容量也是10,可以在建立是指定容量。擴容為原來的2倍;

ArrayList與Vector最大的區別在於Vector是執行緒安全的,這也導致Vextor的效率要遠低於ArrayList;

ArrayList與LinkedList

LinkedList內部採用的是連結串列實現,所以相比於ArrayList,LinkedList在插入和刪除操作時速度很快

,但是在隨機訪問時需要遍歷整個連結串列(時間複雜度是O(n));

HashMap與HashTable

                           HashMap                  HashTable

執行緒安全                 否         是

初始容量                 16                                11

效能                         好                               不好

擴容                       2倍                               2倍+1

空值                      允許(null,null)              不允許null

HashSet

HashSet內部實現是HashMap,只不過value為null。