All three classes implement the Map interface and offer mostly the same functionality. The most important difference is the order in which iteration through the entries will happen:
HashMapmakes absolutely no guarantees about the iteration order. It can (and will) even change completely when new elements are added.TreeMapwill iterate according to the “natural ordering” of the keys according to theircompareTo()method (or an externally suppliedComparator). Additionally, it implements theSortedMapinterface, which contains methods that depend on this sort order.LinkedHashMapwill iterate in the order in which the entries were put into the map