HashMap 和 Hashtable 的区别
HashMap 和 Hashtable 都实现了 Map 接口,因此很多特性非常相似。
不同点:
- HashMap 允许键和值为 null,Hashtable 不允许键或者值为null。
- Hashtable 是同步的(底层实现方法有synchronized修饰),而 HashMap 不是。因此,HashMap 更适合单线程环境,而 Hashtable 适合于多线程环境。
- HashMap继承AbstractMap类,Hashtable继承Dictionary类。
- HashMap提供了可供应用迭代的键的集合,因此,HashMap 是快速失败(fast-fail)的。Hashtable提供了对键的列举(Enumeration)。