如何访问Java Hashtable的内部数组表示?我知道哈希表只是巧妙组织的数组,我想使用每个键的索引,所以我可以与Disjoint集并行工作。
我需要两件事之一:
答案 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或类似的东西可能甚至不需要。这很有趣。