You said it yourself. All methods in Vector are painfully synchronized. Collection synchronization, if required, can be applied outside the class, preferably in each case.
Another subtle difference between ArrayList and Vector is that you can control how the vector can grow. If in Arraylist the size of the internal array is always doubled
source share