In this post, we will understand the difference between ArrayList and Vector in Java.
ArrayList
It is not synchronized.
If the number of elements exceeds the capacity of the ArrayList, it increments the current array size by 50 percent.
It is not thread-safe.
It was introduced in JDK 1.2.
it can only use iterator to traverse.
Since it is non-synchronized, it is quick.
It uses the Iterator interface to traverse through the elements.
Example
ArrayList<T> al = new ArrayList<T>();
Vector
It is synchronized.
It is thread safe.
It is a legacy class.
It is slow, since it is synchronized.
If the number of elements exceeds the capacity of the Vector, it increments the current array size by 100 percent.
It can use enumerator and iterator to traverse.
It is preferred over ArrayList.
It provides a multi-threading environment.
It holds other threads in the runnable or non-runnable state, until the current thread releases the lock on the specific object.
It can use either the ‘Iterator’ interface or the Enumeration interface to traverse through the elements.
Example
Vector<T> v = new Vector<T>();