【问题标题】:How to implement a HashTable using a HashSet如何使用 HashSet 实现 HashTable
【发布时间】:2012-06-12 17:45:37
【问题描述】:

我被问到以下面试问题:

假设你有一个 HashSet 实现提供它的普通 界面。如何使用一个或多个 HashSet 实例 实现一个 HashTable 提供普通的 HashTable 接口它的普通时间限制?

我问了两次,但他们的意思是这样而不是相反(使用 HashTable 实现 HashSet 非常简单,例如 Java 就是这样做的)。

我回答说不可能。这个答案似乎没有让面试官满意,所以我正在寻找更好的答案。即使在 Internet 和 Stack Overflow 上搜索,我也找不到解决方案。

我认为这是一个棘手的问题,但为了确保我在 SO 上发布了这个问题。

【问题讨论】:

    标签: data-structures hashtable


    【解决方案1】:

    执行此操作的一种标准方法是将哈希表视为键/值对的哈希集,其中键/值对的哈希码纯粹是键的哈希码,相等比较函数表示任何两个键/值对在它们的键相等时恰好相等。这样一来,正常的哈希集操作将存储键/值对的方式

    • 不会存储具有相同键的两个键/值对,并且
    • 在哈希表中查找键将找到具有该键的键/值对对象,从中可以查找值。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 2014-03-05
      • 2011-10-20
      • 2015-07-12
      • 1970-01-01
      • 2014-07-25
      • 2020-08-04
      相关资源
      最近更新 更多