哈希表和字典ADT有什么区别?何时应该优先选择其中的一个?在我的编程作业中,我的教练要求我使用它们中的一个,但我并没有看到两者之间的任何区别。该程序应该使用大量的字符串。有什么建议吗?
哈希表和字典ADT有什么区别?何时应该优先选择其中的一个?在我的编程作业中,我的教练要求我使用它们中的一个,但我并没有看到两者之间的任何区别。该程序应该使用大量的字符串。有什么建议吗?
就Java而言,HashMap
和Dictionary
类都是"Map"抽象数据类型的实现。 抽象数据类型不特定于任何一种编程语言,而Map ADT也可以被称为Hash、Dictionary或Associative Array(其他在http://en.wikipedia.org/wiki/Associative_array)。 (请注意,我们在区分Dictionary
类和Dictionary ADT。)
Dictionary
类已被标记为过时,因此最好不要使用它。
这篇 Stack Overflow 帖子很好地解释了关键差异:
请注意,Hashtable 只是字典 ADT 的一种实现。另外,请注意 Java 认为 Dictionary 已过时。
对于大多数用途,Hashtable 同步的事实并没有给你带来很多好处。请使用 HashMap。
Map是Java中的一个ADT接口,用于维护<key, value>对的通用数据结构,自Java 1.2引入。
Dictionary(不是Map的实现)是一个抽象类,早在JDK 1.0中就被引入了。它唯一的子类是Hashtable,它本身实现了Map。然而,Dictionary类现在已经过时,可以忘记它了。
尽管Map和Dictionary的函数成员有所区别,但您可能会发现HashMap和Hashtable之间的差异更有用。在这里您可以找到这些差异。