java - 当接近内存容量时调整数组大小

标签 java arrays resize

所以我正在用java实现我自己的哈希表,因为内置的哈希表每个条目都有荒谬的内存开销。我正在制作一个带有二次哈希变体的开放寻址表,该表在内部由两个数组支持,一个用于键,一个用于值。但我没有调整大小的能力。最明显的方法是创建更大的数组,然后将所有(键,值)对从旧数组散列到新数组中。不过,当我的旧数组占用当前内存的 50% 以上时,这种情况就会崩溃,因为我无法同时将新旧数组放入内存中。在这种情况下有什么方法可以调整我的哈希表的大小

编辑:我从这里获得的当前哈希表内存开销的信息 How much memory does a Hashtable use?

此外,对于我当前的应用程序,我的值是整数,因此我没有存储对整数的引用,而是使用一个整数数组作为我的值。

最佳答案

简单的答案是“不,没有办法扩展现有数组的长度”。也就是说,您可以向哈希表添加额外的复杂性并使用数组的数组(或者专门为两个数组提供硬编码支持)。

关于java - 当接近内存容量时调整数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4527743/

相关文章:

java - Swing:调整 RadioButton 的大小

android - 如何从ImageView获取图片并设置到其他ImageView?

java - 如何在 Java Swing 中动态控制自动调整大小的组件

java - 无法更改 JLabel 的文本

java - 使用 cypher 获取带有标签和索引的节点

Java括号替换为空字符串

javascript - 如何将更改应用到 JavaScript 数组中的数据对象?

android - 为什么使用 Android NDK 通过 JNI 将 native 数组复制回 Java 无法正确填充?

java - 在MainActivity android中使用smack API与服务器连接

c - C中的数组赋值