我该如何访问Java Hashtable的内部数组表示?我知道hashtable只是巧妙地组织成数组,我想使用每个键的索引,以便可以与Disjoint set并行工作。
我需要以下两种信息之一:
- 将我的键转换为散列表内部数组中的索引所使用的哈希函数
- 相应键的索引。
我该如何访问Java Hashtable的内部数组表示?我知道hashtable只是巧妙地组织成数组,我想使用每个键的索引,以便可以与Disjoint set并行工作。
我需要以下两种信息之一:
HashMap
类而不是Hashtable
。MyHashMap
,通过复制来自Java开发工具包的HashMap
实现的源代码。通过拥有自己的副本,您可以完全控制,并且不会受到JRE更新后出现的意外损坏的影响。您可以在此处找到OpenJDK的HashMap
实现here。
PS:理论上,您可以尝试使用反射访问HashMap
的内部,但是生成的代码将会非常糟糕,性能甚至更差...
Hashtable
是同步的,这通常意味着相当不必要的开销。它也比较老,这意味着它的接口相对于新的类来说比较混乱,其中包含了一些已经不再使用的接口。 - thkala我相信你可以通过反射访问任何字段,只需查看Hashtable内部即可。
或者你只是在寻找代码示例?