Today I wondered why there is two classes to handle vectors in Java: java.util.ArrayList and java.util.Vector. After having carefully read the javadoc, I found that the Vector is synchronized on the contrary of the ArrayList. Thus, there will be a difference only for threaded applications.

By searching the web a bit more I found this very interesting page at JavaWorld. By reading this, I understood how much there is still to know about Java to optimize programs... I never had a look at the LinkedList class, but I certainly should have done it in many cases...