【问题标题】:Basic differences between HashTable and HashMap?HashTable和HashMap的基本区别?
【发布时间】:2020-05-21 08:30:31
【问题描述】:

我正在研究哈希表和哈希映射,我所阅读或观看的所有内容都对差异进行了非常模糊的描述。从他们两个在 Netbeans 上乱来,他们似乎有相同的功能和做同样的事情,这两种数据结构之间的根本区别是什么?

【问题讨论】:

    标签: data-structures hashmap language-agnostic hashtable


    【解决方案1】:

    没有区别,但是你会发现同一个东西在不同的编程语言中叫法不同,所以人们如何称呼东西取决于他们的背景和他们使用的编程语言。例如:在 c++ 中为HashMap,在java 中为HashTable

    此外,根据命名可能会得出一个区别:HashTable 只允许存储散列键,而不是值,而HashMap 允许通过散列键检索值。在内部,两者都将使用相同的算法,并且可以被视为相同的数据结构。

    【讨论】:

    • 干杯老兄,感谢您的帮助!
    【解决方案2】:

    HashTable 对我来说听起来像是一个具体的数据结构,尽管它有许多变体,具体取决于发生冲突时、表填满时、空表时发生的情况。

    Map 听起来像是一种抽象数据结构,由可用操作定义(字典可能是相同数据结构的另一个名称,但如果某些命名法在某处定义了细微差别,我不会感到惊讶)。

    HashMap 听起来像是使用 HashTable 具体数据结构的 Map 抽象数据结构的实现。

    同样,如果一种语言或库同时提供两者,并且在某处有细微差别,我不会感到惊讶(例如,HashMap 只能提供为 Map 定义的操作,但 HashTable 提供了对 HashTable 有意义的所有内容)。

    【讨论】:

      猜你喜欢
      • 2020-10-11
      • 2010-11-15
      • 2012-02-11
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 2015-07-18
      • 2016-07-18
      相关资源
      最近更新 更多