哈希表内部索引

时间:2012-11-21 20:09:53

标签: java data-structures hash hashtable

如何访问Java Hashtable的内部数组表示?我知道哈希表只是巧妙组织的数组,我想使用每个键的索引,所以我可以与Disjoint集并行工作。

我需要两件事之一:

  1. 哈希函数用于将我的键转换为哈希表的内部数组中的索引
  2. 密钥的相应索引。

3 个答案:

答案 0 :(得分:4)

注1:在90%的情况下,您应该使用HashMap类而不是Hashtable

注2:实际上,大多数哈希表将列表与数组组合在一起,以处理哈希冲突。

通常,应该能够访问Java实现附带的类的内部。这将破坏Java的整个目的,提供在界面和实现之间明确分离的能力。

相反,我建议您创建一个新类,例如通过从Java Development Kit复制MyHashMap实现的源代码来HashMap。通过拥有自己的副本,您可以完全控制,并且在JRE更新后您不会受到意外破坏。您可以找到OpenJDK HashMap实施here

PS:你可能理论上尝试使用反射来访问HashMap内部,但结果代码将 atrocious ,性能更差...... < / p>

答案 1 :(得分:0)

我相信你可以通过反射访问任何字段,只需看看Hashtable内部。

或者您只是在寻找代码示例?

答案 2 :(得分:0)

创建一个类似哈希表的类,按字母顺序为索引分配索引。扩展HashMap或类似的东西可能甚至不需要。这很有趣。