hashmap和hashtable

hashmap和hashtable

​相同点:

1.两者都是key-value的双列集合

2.底层都是通过数组+链表方式实现数据的存储

不同点:
1.集成的父类不同

    Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但两者都实现了Map接口

2.线程安全性不同

    Hashtable中的方法是Synchronize的,而HashMap中的方法在缺省情况下是非Synchronize的。在多线程并发的环境下,可以直接使用Hashtable,不需要自己为它的方法实现同步,但使用HashMap时就必须要自己增加同步处理。

3.hashMap允许null键和null值,只能有一个,但是hashtable不允许。

4.HashMap是java开发中常用的类,但是Hashtable和vector一样成为了废弃类,不推荐使用,因为有其他高效的方式可以实现线程的安全,比如ConcurrentHashMap。
上一篇:Java集合


下一篇:LeetCode 387. 字符串中的第一个唯一字符