HashMap1.7和1.8的头插法和尾插法代码

129 阅读1分钟
1.7
Entry<K,V> next = e.next; 
int i = indexFor(e.hash, newCapacity);
e.next = newTable[i]; 
newTable[i] = e; 
e = next; 
1.8
for (int binCount = 0; ; ++binCount) {    
    if ((e = p.next) == null) {       
         p.next = newNode(hash, key, value, null);       
             if (binCount >= TREEIFY_THRESHOLD - 1) // -1 for 1st            
                treeifyBin(tab, hash);
             break;  
 }   
   if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k))))        
       break;    
    p = e;
}