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>();