我被问到以下面试问题:
假设你有一个提供普通的HashSet实现 接口。如何使用一个或多个HashSet实例 实现一个HashTable提供普通的HashTable接口它的普通时间限制吗?
我问过两次,但是他们的意思是这样,而不是相反(使用HashTable实现HashSet非常简单,例如Java就是这样)。
我回答说这是不可能的。这个答案似乎没有让采访者满意,所以我正在寻找更好的答案。即使在互联网和Stack Overflow上搜索,我也找不到解决方案。
我认为这是一个棘手的问题,但是为了确保我在这里发布这个问题。
答案 0 :(得分:5)
执行此操作的一种标准方法是将哈希表视为键/值对的哈希集,其中键/值对的哈希码纯粹是键的哈希码,而相等比较函数则表示任何两个键/值对在键相等时精确相等。这样,正常的哈希集操作将以
的方式存储键/值对希望这有帮助!