Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sự khác biệt giữa ArrayList và Vector trong Java

Trong bài viết này, chúng ta sẽ tìm hiểu sự khác biệt giữa ArrayList và Vector trong Java.

ArrayList

  • Không synchronized (non-synchronized)
  • Khi vượt capacity: tăng size 50%
  • Không thread-safe
  • Ra mắt JDK 1.2
  • Chỉ dùng Iterator để duyệt
  • Nhanh hơn do không synchronized
  • Dùng Iterator interface

Ví dụ ArrayList

ArrayList<T> al = new ArrayList<T>();

Vector

  • Synchronized
  • Thread-safe
  • Lớp kế thừa (legacy class)
  • Chậm hơn do synchronized
  • Khi vượt capacity: tăng size 100% (gấp đôi)
  • Dùng Enumerator và Iterator để duyệt
  • Cung cấp môi trường multi-threading
  • Giữ các thread khác ở trạng thái runnable/non-runnable cho đến khi thread hiện tại release lock
  • Có thể dùng Iterator hoặc Enumeration

Ví dụ Vector

Vector<T> v = new Vector<T>();