联系
HashMap、TreeMap、HashTable都是Map<K,V>接口的子类。
Map接口是存放一对对象的最顶级接口。
区别
| HashMap | TreeMap | HashTable |
---|
底层实现 | 基于哈希表+红黑树(JDK1.8之后) | 基于红黑树 | 基于哈希表 |
K处存放null | 允许 | 不允许 | 不允许 |
V处存放null | 允许 | 允许 | 不允许 |
初始化方式 | 懒加载,在第一次调用put()方法时初始化 | | 产生对象时默认初始化,大小为16 |
线程安全 | 线程不安全 | | 线程安全 |
性能 | 异步处理,性能较高 | | 同步处理,性能较低 |