The main difference is that Vector is synchronized. More minor differences--it was retrofit into the Collections API and therefore isn't as standard as ArrayList, which was provided as a new part of the Collections API. As far as I can see, when writing new code there is absolutely no reason to use Vector at all...I always prefer ArrayList, even if I need a synchronized one: