Is there really that much of a difference between the performance of
ArrayList? Is it good practice to use ArrayLists at all times when thread safety isn"t an issue?
Vector originates back from the pre-Collections API days, and have been retrofitted since to be a part of it. From what I've read, the reason it is not deprecated is because the core API depends on it.
ArrayList was written from scratch as a part of the Collections API and as such should be used unless you need to support Java versions down to 1.2.
If you need a thread-safe ArrayList, you can use the static factory method
Collections.synchronizedList(new ArrayList<type>); to generate your list.