HashMap 의 확장 메커니즘

853 단어 자바
1.현재 용량 이 극한 에 도 달 했 는 지 판단 2^30,극한 에 도달 하면 더 이상 확장 할 수 없습니다.
2.entry 배열 용량 을 2*oldLength 로 새로 만 듭 니 다.
3.데 이 터 를 새 배열 로 옮 깁 니 다.
4.hashmap 의 table 속성 을 새 Entry 배열 로 참조 합 니 다.
void resize(int newCapacity) {   //        
        Entry[] oldTable = table;    //      Entry    
        int oldCapacity = oldTable.length;  
        if (oldCapacity == MAXIMUM_CAPACITY) {  //                (2^30)   
         threshold = Integer.MAX_VALUE; //     int    (2^31-1),            
            return;  
        }  
      
        Entry[] newTable = new Entry[newCapacity];  //       Entry    
        transfer(newTable);                         //!!        Entry     
        table = newTable;                           //HashMap table      Entry    
        threshold = (int) (newCapacity * loadFactor);//      
    }  

좋은 웹페이지 즐겨찾기