Java 使用数组重新格式化自定义哈希表
在使用数组处理自定义哈希表之后,我意识到,当我在项目与大小的最大比率大于0.6后调整哈希表的大小时,它将使我的哈希函数无效,因为在调整大小后的下一次哈希函数加载将有所不同 这是我当前的rehash函数,从逻辑上讲,这将不起作用,因为它可能会用新哈希覆盖旧值,这意味着将从表中删除项Java 使用数组重新格式化自定义哈希表,java,hash,hashtable,Java,Hash,Hashtable,在使用数组处理自定义哈希表之后,我意识到,当我在项目与大小的最大比率大于0.6后调整哈希表的大小时,它将使我的哈希函数无效,因为在调整大小后的下一次哈希函数加载将有所不同 这是我当前的rehash函数,从逻辑上讲,这将不起作用,因为它可能会用新哈希覆盖旧值,这意味着将从表中删除项 private void reHash(){ for(int i=0; i < arr.length-1; i ++){ if(arr[i] != null){
private void reHash(){
for(int i=0; i < arr.length-1; i ++){
if(arr[i] != null){
Pair u = (Pair) arr[i];
put(u.key, (V) u.value);
}
}
}
private void reHash(){
对于(int i=0;i
Put是我用来插入的方法。正在考虑使用临时数组,然后将原始数组设置为临时数组,但这意味着要更改表中的大量代码
private void reHash(){
for(int i=0; i < arr.length-1; i ++){
if(arr[i] != null){
Pair u = (Pair) arr[i];
put(u.key, (V) u.value);
}
}
}
有什么建议吗??
谢谢是的,使用一个临时数组是可行的。”但这意味着要更改表中的许多代码。“当然,在扩大场景时,替换仅限于重新刷新。所有其他方法都应该只查看数组引用。