ArrayList和Vector擴容機制

2021-10-09 05:31:52 字數 423 閱讀 2649

直接給原始碼,jdk1.8

private void grow(int mincapacity)
可以看到,增長是1.5倍。

首先來看個建構函式:

下圖的建構函式我們可以看到,vector可以設定增長的值。

public vector(int initialcapacity, int capacityincrement)
private void grow(int mincapacity)
根據這部分擴張**可以看出,如果設定了增長值則每次增長對應增長值得大小,否則按照兩倍擴張。

3.補充

vector執行緒安全,而arraylist執行緒不安全。vector將方法synchronized了所以是執行緒安全的。

Array List和ArrayList的區別與

定義 public abstract class array icloneable,ilist,icollection,ienumerable,istructuralcomparable,istructuraequatable 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元...

過載技巧 簡單實現string和Vector

1.賦值 下標 呼叫 和成員訪問箭頭 等操作符必須定義為成員,將這些操作符定義為非成員函式將在編譯時標記為錯誤。2.像賦值一樣,復合賦值操作符通常應定義為類的成員。與賦值不同的是,不一定非得這樣做,如果定義為非成員復合賦值操作符,不會出現編譯錯誤。3.改變物件狀態或與給定型別緊密聯絡的其他一些操作符...

LinkedList和ArrayList的區別

對於集合collection下的list介面,有兩個實現類,arraylist和linkedlist,那麼他們兩個有什麼區別呢。arraylist的底層由陣列實現,而linkedlist的底層由雙向鍊錶實現,底層的不同才是他們區別的根源。然而因為他們繼承於同乙個父介面,他們的很多方法都是相同的。關於...