Hi, there is no as such difference in their functionality as all three of them implement the Map interface but there lies a difference in the output they generate. To put it in simple terms:
HashMap: It is implemented based on the hashtable and there is no specific ordering on the keys as well as the values.
Hashtable is a class which inherits Dictionary class and implements the Map interface. It is basically an array of list type know as buckets. The positioning of each bucket is identified using the hashcode() and then it maps the unique keys to the values. It’s a synchronized class which do not contain any null key or value.
TreeMap: Its implementation is based on the red-black tree structure and follows the natural ordering of the key-value pairs.
LinkedHashMap: It works simplest among all by just following the insertion order of the key-value pairs.