Java HashMap和dictionary ADT之间的区别

Java HashMap和dictionary ADT之间的区别,java,data-structures,Java,Data Structures,哈希映射和字典ADT之间的区别是什么。什么时候更喜欢一个而不是另一个。对于我的编程作业,我的导师要求使用其中一个,但我看不出两者之间有任何区别。这个程序应该使用大量的字符串。有什么建议吗?在Java中,HashMap实现了映射接口,而字典没有。这使得字典过时了(根据API文档)。也就是说,它们都有相似的功能,所以你是对的,它们看起来非常相似……HashMap是字典的一种类型 不过,建议您使用HashMap。这篇堆栈溢出文章很好地解释了关键区别: 请注意,哈希表只是字典ADT的一个实现。还要注意

哈希映射和字典ADT之间的区别是什么。什么时候更喜欢一个而不是另一个。对于我的编程作业,我的导师要求使用其中一个,但我看不出两者之间有任何区别。这个程序应该使用大量的字符串。有什么建议吗?

在Java中,HashMap实现了映射接口,而字典没有。这使得字典过时了(根据API文档)。也就是说,它们都有相似的功能,所以你是对的,它们看起来非常相似……HashMap是字典的一种类型


不过,建议您使用HashMap。

这篇堆栈溢出文章很好地解释了关键区别:

请注意,哈希表只是字典ADT的一个实现。还要注意,Java考虑字典


Hashtable是同步的,这一事实在大多数情况下并不能为您带来多少好处。使用HashMap。

就Java而言,类
HashMap
和类
Dictionary
都是“映射”抽象数据类型的实现。抽象数据类型并不特定于任何一种编程语言,映射ADT也可以称为散列、字典或关联数组(其他部分)。(请注意,我们正在区分
Dictionary
类和Dictionary ADT。)


字典
类已被标记为过时,因此最好不要使用它。

映射是Java中ADT的接口,与用于维护对的通用语言无关的数据结构相同,并在Java 1.2中引入

Dictionary(不是Map的实现)是一个抽象类,用于JDK1.0中前面介绍的相同目的。它唯一的子类是Hashtable,它本身正在实现Map。然而,Dictionary类现在已经过时了,您可能会忘记它


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

注意,“Map”抽象数据类型与
Map
Java接口之间存在差异。如其他答案所述,遗留的
字典
类没有实现
Map
Java接口,但是
HashMap
类实现了。