1、相同点
1)都属于Map,都是key-value结构存储,因此key不允许重复。
2)都是线程不安全的。
2、不同点
1)HashMap和TreeMap不支持按插入顺序存放,但LinkedHashMap支持。
2)HashMap和LinkedHashMap不支持key排序,但TreeMap支持key排序,也可自定义排序。
3)底层结构:HashMap(数组+链表+红黑树),TreeMap(红黑树),LinkedHashMap(HashMap+双向链表)。
4)HashMap和LinkedHashMap均允许key和value为null值(只允许存在一个null值的key,若多个则覆盖),TreeMap不允许key为null。