1、HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口
主要区别在于HashMap允许空的键值,由于其是非线程安全的,所以其运行效率要高于Hashtable。
2、Hashtable中有个contains方法,而HashMap中并没有这个方法,而是改为了具体的containsKey和containsValue,避免了contains方法易被误解的尴尬。
3、Hashtable 继承自Dictionary类,是Java最初就有的,可以说是元老级的存在,而HashMap是Java1.2引进的Map interface的一个实现
4、Hashtable的方法是Synchronized的,而HashMap不是,所以多线程访问Hashtable时,不需要其为自己的方法实现同步,而HashMap则要自己为其提供外同步
5、两者采用的hash/rehash算法大致一样,性能差异也不大
HashMap和Hashtable的区别
最新推荐文章于 2024-07-10 21:37:49 发布