HashMap和Hashtable的差别
发布日期:2021-06-29 18:31:03 浏览次数:2 分类:技术文章

本文共 639 字,大约阅读时间需要 2 分钟。



1. HashMap 与 Hashtable继承自不同的类

    1) HashMap 继承自AbstractMap,而AbstractMap实现了Map接口

    2) Hashtable 继承自Dictionary

2. HashMap可以以null为key,而Hashtable不可以,这点差别源自于两者对于null有不同的处理方式,具体见下面代码:

   1) HashMap     (put方法:public V put(K key, V value))

if (key == null)    return putForNullKey(value);

   2) Hashable    (put方法:public synchronized V put(K key, V value))

if (value == null) {    throw new NullPointerException();}

3. HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey,因为contains方法容易让人引起误解,实际上此方法等同于containsvalue。

4. Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步(如使用:Collections.synchronizedMap)






转载地址:https://cxyxy.blog.csdn.net/article/details/24182769 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:HashMap非线程安全分析
下一篇:mybatis和hibernate对比

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 10时45分54秒