HashMap和字典ADT之间的区别

时间:2008-11-06 00:40:32

标签: java data-structures

哈希映射和字典ADT之间有什么区别。什么时候比较喜欢一个。对于我的编程作业,我的导师要求使用其中一个,但我认为两者之间没有任何区别。该计划应该与一个巨大的没有。字符串。有什么建议吗?

4 个答案:

答案 0 :(得分:60)

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

Dictionary 已标记为已过时,因此最好不要使用它。

答案 1 :(得分:18)

这个Stack Overflow帖子很好地解释了关键的区别:

Java hashmap vs hashtable

请注意,Hashtable只是Dictionary ADT的一个实现。另请注意,Java会考虑词典"obsolete"

Hashtable同步这一事实并不能为大多数用途带来太多收益。使用HashMap。

答案 2 :(得分:8)

在Java中,HashMap实现了Map接口,而Dictionary则没有。这使得字典过时(根据API文档)。也就是说,它们都执行类似的功能,因此你看起来非常相似...... HashMap是一种字典。

建议您使用HashMap。

答案 3 :(得分:0)

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

Dictionary(不是Map的实现)是一个Abstract类,用于JDK 1.0中前面介绍的相同目的。它唯一的子类是Hashtable,它本身就是Map。然而,Dictionary类现在已经过时了,你可能会忘记它。

Map和Dictionary的函数成员之间存在差异,但是您可能会发现HashMap和Hashtable之间的区别更加有用。 here你可以找到差异。