when we use ArrayList, when we use Vector, When we use TreeMap, when we use HashMap, when we use Hashtable, when we use Arrays. 1. Never use Vector; always use ArrayList instead. Vector is an old class, left over from Java version 1.1. The main difference between Vector and ArrayList is that Vector is synchronized, while ArrayList is not. That makes ArrayList faster.
2. TreeMap or HashMap: Both are dictionary data structures; they allow you to store key-value pairs, and you use the keys to find the values. HashMap is unordered. In a TreeMap, elements are sorted on the keys. Sometimes that is useful in applications.
3. Hashtable: The same as with Vector; this is an old Java 1.1 class. Don't use it; use HashMap instead.
4. Arrays: An array has a fixed size. If you need a list that can grow or shrink dynamically (i.e., while the program is running), you'll need to use one of the implementations of java.util.List instead of an array.
Look here for more information:
The Collections Framework