Hashtable和Dictionary之间有什么区别?

Sam*_*iya 22 java collections dictionary hashtable

Dictionary和Java 之间的Hashtable这个Dictionary类有什么区别?

Ale*_*exR 21

Dictionary是一个抽象的基类Hashtable.为了向后兼容旧代码,两者仍然在JDK中.我们期望使用Java 1.2中引入HashMapMap接口和其他实现.


Bil*_*ard 15

字典的javadoc 有你的答案.

Dictionary类是任何类的抽象父类,例如Hashtable,它将键映射到值.

你不直接工作Dictionary,因为它是一个abstract类.

另请注意以下相同的文档:

注意:此类已过时.新实现应该实现Map接口,而不是扩展此类.


ass*_*ias 10

Dictionary是一个抽象类,超类Hashtable.你不应该使用,Dictionary因为它已经过时了.至于Hashtable,它优于其他地图的优势,比如HashMap线程安全,但是自Java 1.5以来引入了ConcurrentHashMap,没有真正的理由再使用它了 - 请参阅javadoc

从Java 2平台v1.2开始,这个类被改进以实现Map接口,使其成为Java Collections Framework的成员.与新的集合实现不同,Hashtable是同步的.如果不需要线程安全实现,建议使用HashMap代替Hashtable.如果需要线程安全的高度并发实现,那么建议使用ConcurrentHashMap代替Hashtable.

总结:除非出于兼容性原因,否则不要使用Dictionary或者Hashtable使用,HashMap如果您不需要线程安全,或者ConcurrentHashMap您的映射在并发环境中使用.