所以我正在用java实现我自己的哈希表,因为内置的哈希表每个条目都有荒谬的内存开销。我正在制作一个带有二次哈希变体的开放寻址表,该表在内部由两个数组支持,一个用于键,一个用于值。但我没有调整大小的能力。最明显的方法是创建更大的数组,然后将所有(键,值)对从旧数组散列到新数组中。不过,当我的旧数组占用当前内存的 50% 以上时,这种情况就会崩溃,因为我无法同时将新旧数组放入内存中。在这种情况下有什么方法可以调整我的哈希表的大小
编辑:我从这里获得的当前哈希表内存开销的信息 How much memory does a Hashtable use?
此外,对于我当前的应用程序,我的值是整数,因此我没有存储对整数的引用,而是使用一个整数数组作为我的值。
最佳答案
简单的答案是“不,没有办法扩展现有数组的长度”。也就是说,您可以向哈希表添加额外的复杂性并使用数组的数组(或者专门为两个数组提供硬编码支持)。
关于java - 当接近内存容量时调整数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4527743/