HashMap和HashTable有什么区别
父类 | 安全 | 是否可以null键null值 | |
---|---|---|---|
HashMap | AbstractMap | 不安全 | 允许 |
HashTable | Dictionary | 安全 | 不允许 |
- HashMap是HashTable的轻量级实现(非线程安全的实现),最大的不同是HashTable的方法是Synchronize的,而HashMap不是,在多个线程访问HashTable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。
- HashMap允许将null作为一个entry的key或者value,而HashTable不允许。
- HashTable继承自Dictionary类,而HashMap继承自AbstractMap类。
- HashMap把HashTable的contains方法去掉了,改成containsvalue和containskey,因为contains方法容易让人误解。