As far as ArrayList and Vector are concerned, there are mainly two aspects.
1. Synchronicity: Vector is thread-safe, which means it is synchronized, while ArrayList is thread-safe and not synchronized.
2. Data growth: When growth is needed, Vector grows by default by one level, while ArrayList grows by half of its original size.
There are three main aspects of HashMap and HashTable.
1. Historical reasons: Hashtable is based on the old Dictionary class, and HashMap is an implementation of the Map interface introduced in Java 1.2.
2. Synchronicity: Hashtable is thread-safe, which means it is synchronous, while HashMap is thread-safe and not synchronous.
3. Value: Only HashMap allows you to use a null value as the key or value of a table entry
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection is the most basic collection interface. A Collection represents a set of Objects, that is, the elements of the Collection.
Map provides key to value mapping