ArrayList 和 Vector 的差別

Java 裡面 Collection Framework 裡面,提供許多不一樣的 Class 給 Programmer 挑選使用,常常忘了思考,在什麼樣的情況下,應該使用不同的 Collection Class ,而 ArrayList 和 Vector 就是很容易忘記差異的兩項。

ArrayList 和 Vector 的差異,顯而易見的部分如下:

  • Synchronization - ArrayList 並沒有處理 Synchronization ,所以在 ArrayList 並非 Thread – safe 的。
  • Vector 則有處理 Synchronization ,所以效能上會有一些影響。
  • Data growth - 預設的情況下,Vector 在空間不足的情況下,一次會擴張 2 倍的空間
  • ArrayList 會擴張當前空間的 1/2。
  • Iteration Performance - ArrayList 進行 Iteration 的速度也比 Vector 快,主要是兩者在 Itr (JDK Source) 裡的實作方式不一樣。

Reference

Difference Between ArrayList And Vecotr

What the differences between arraylist and vector

To Index or Iterate