如何使用HashSet实现HashTable

the*_*ega 2 hashtable data-structures

我被问到以下面试问题:

假设您有一个提供其普通接口的HashSet实现.你怎么能使用一个或多个HashSet实例来实现HashTable,它提供普通的HashTable接口呢?

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

我回答说这是不可能的.这个答案似乎没有让采访者满意,所以我正在寻找更好的答案.即使在互联网和Stack Overflow上搜索,我也找不到解决方案.

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

tem*_*def 5

执行此操作的一种标准方法是将哈希表视为键/值对的哈希集,其中键/值对的哈希码纯粹是键的哈希码,而相等比较函数表示任意两个键/值对在其键相等时精确相等.这样,正常的散列集操作将以某种方式存储键/值对

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

希望这可以帮助!