Java中HashMap的transfer方法理解

来源:互联网 发布:高校综合数据分析平台 编辑:程序博客网 时间:2024/04/30 12:06
void transfer(Entry[] newTable){
        Entry[] src=table;
        int newCapacity=newTable.length;
        for(int j=0;j<src.length;j++){
            Entry<K, V> e=src[j];
            if(e!=null){
                src[j]=null;
                do{
                    Entry<K, V> next=e.next;//保存下一次循环的Entry
                    
                    //在新的table 中求得适合插入的位置
                    int i=indexFor(e.hash, newCapacity);
                    e.next=newTable[i];//  如果I位置原来没有值,则直接插入;有值,采用链头插入法
                    newTable[i]=e;
                    
                    //轮替,下一次循环
                    e=next;
                }while(e!=null);
            }
        }

    }



0 0
原创粉丝点击