Both Vector and ArrayList store everything in terms of Object. People get confused when to use what?

If there are chances that multiple threads will access same instance of data structure, then use Vector because Vector is synchronized. Also note that synchronized data structure will give low performance as compared to non synchronized one.