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。