You cover a lot of differences. I see a key thing missing. That Vector was created before ArrayList and at one point the default choice. For new code that needs a synchronized collection, the Java 7 Collections classes are often preferable.
There's another thing you didn't mention -- Vector has some methods which ArrayList doesn't have. I'm not saying they are methods which can't be replaced, but a couple of years ago when I was refactoring some code which used Vector, I left it alone because it used them.
Apart from that, the article was a blast from the past. People used to really care back in 2004. For some reason I never understood, they resented the fact that Vector was obsolete and they would go to ridiculous lengths to "explain" why Vector should be used.
Jeanne Boyarsky wrote:For new code that needs a synchronized collection, the Java 7 Collections classes are often preferable.
Non-crappy concurrent collections (e.g. ArrayBlockingQueue or ConcurrentHashMap) started becoming available in JDK 5, and each release since then has added more. Nowadays it's also worth considering GS Collections which offer additional functionality and performance enhancements.
@Boyarsky & @Simmons Thank you for lighting me on new collections. I will try to learn the latest collections which gives better performance and update the post. @Clapham Thank you. I believe for performance centric applications, we should avoid using the Vector.