Java 使用数组重新格式化自定义哈希表

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){

在使用数组处理自定义哈希表之后,我意识到,当我在项目与大小的最大比率大于0.6后调整哈希表的大小时,它将使我的哈希函数无效,因为在调整大小后的下一次哈希函数加载将有所不同

这是我当前的rehash函数,从逻辑上讲,这将不起作用,因为它可能会用新哈希覆盖旧值,这意味着将从表中删除项

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); 
            }
        }
    }
有什么建议吗??
谢谢

是的,使用一个临时数组是可行的。”但这意味着要更改表中的许多代码。“当然,在扩大场景时,替换仅限于重新刷新。所有其他方法都应该只查看数组引用。