HashMap和字典ADT之间的区别

哈希映射和字典ADT有什么区别? 什么时候比另一个更喜欢 对于我的编程任务,我的教练要求使用其中的一个,但是我没有看到两者之间的差异。 该计划应该是一个巨大的没有。 的string。 有什么build议么?

就Java而言,类HashMap和类Dictionary是“Map”抽象数据types的实现。 抽象数据types不是特定于任何一种编程语言,Map ADT也可以被称为哈希,或字典或关联数组( http://en.wikipedia.org/wiki/Associative_array )。 (注意我们正在区分Dictionary类和Dictionary ADT。)

Dictionary 已被标记为废弃,所以最好不要使用它。

这个堆栈溢出post很好的解释了关键的区别:

Java哈希表与哈希表

请注意,Hashtable只是Dictionary ADT的一个实现。 另请注意,Java认为Dictionary是“过时的” 。

Hashtable是同步的这一事实在大多数用途上并不会给你带来太多的收益。 使用HashMap。

在Java中,HashMap实现了Map接口,而Dictionary则没有。 这使字典过时(根据API文档)。 也就是说,他们都做了类似的function,所以你是对的,他们看起来非常相似…一个HashMap是一种字典。

不过build议您使用HashMap。

Map是一个用于Java中ADT的接口,它是用于维护<key,value>对的相同的与语言无关的通用数据结构 ,并在Java 1.2中引入。

Dictionary(不是Map的实现)是JDK 1.0中引入的同一目的的一个Abstract类。 它唯一的子类是Hashtable,它本身正在实现Map。 尽pipe如此,Dictionary类已经过时了,你可能会忘记它。

Map和Dictionary的函数成员有区别,但是你可能会发现HashMap和Hashtable的区别更有用。 在这里你可以find差异。