RE: Difference Between Collection and Legacy classes
Legacy classes are classes which exist to provide forwards compatibility to existing programs but for which there are better alternatives. Some are like Vector Stack HashTable. All of which are synchronized.
Use ArrayList in stead of Vector if you don't want thread safe for the collection whenever you add/remove/access objects at end and middle of collection. Same way use HashMap in stead of HashTable
RE: Difference Between Collection and Legacy classes
Legacy Classes : Previously Collection Frame Work was not part of java.util package. Later some of the classes were re-engineered Known as Legacy Classes. Legacy Classes are SYNCRONIZED(Ctrlng accessibility over the resource). Ex:Vector/Stack/Hashtable/Dictionary/Properties.