java - 哈希表内部索引

标签 java data-structures hash hashtable

如何到达 Java 哈希表的内部数组表示形式?我知道哈希表只是巧妙组织的数组,我想使用每个键的索引,这样我就可以与不相交集并行工作。

我需要以下两件事之一:

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

最佳答案

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

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

一般来说,您应该能够接触到 Java 实现附带的类的内部结构。这将破坏 Java 提供接口(interface)和实现之间清晰分离的能力的全部目的。

相反,我建议您创建一个新类,例如MyHashMap 从您的 Java 开发工具包中复制 HashMap 实现的源代码。通过拥有自己的副本,您可以完全控制 JRE 更新后不会出现意外损坏。您可以找到 OpenJDK HashMap 实现 here .

PS:理论上您可以尝试使用反射访问HashMap 内部,但生成的代码将残暴并且性能更差。 ..

关于java - 哈希表内部索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13501261/

相关文章:

c# - 计算大文件的Md5 Hash

java - 反引号准备好的语句 Java

javascript - 根据数组元素的总和对数组中的元素进行排序

java - LinkedHashSet迭代不按升序排列?

java - 显示通用树的节点时,toString 将不会显示预期结果

ruby - 处理哈希数组

Ruby-如何构建多值哈希?

java - 莫名其妙的 "reference to println is ambiguous"编译错误

Java 条件困惑? (初学者)

java - 如何在 Java 中 "merge"两个 URI?