ArrayList 和 Vector 的區別 -JAVA

殷老實發表於2016-08-02

ArrayList 和 Vector 內部都是使用 陣列 實現的.


不同點: 

1. Synchronization 同步性 

arraylist 是不同步的, 意味著多執行緒能同時對其同時工作.所以它是執行緒不安全的.

Vector 是同步的, 意味著只有一個執行緒能對其工作. 執行緒安全


2. Resize

因為 arraylist 和 vector 都是由array實現的, 當我們例項化一個arraylist或者vector 的時候,會在記憶體裡面分配一個大小為10的陣列, 當我們動態的新增一個元素到 arraylist或者vector的時候, arraylist會新建一個大小為原來1.5倍的新陣列然後將 舊的 複製到 新的裡面, 但是vector 會新建一個大小為 原來2 倍的新陣列, 然後將舊的複製.


3. Performace

arraylist 的操作要比vector 快, 因為它是 執行緒不安全的. 


相關文章