jdk/src/share/classes/java/util/HashMap.java
changeset 20199 0a9d1d17b076
parent 20189 1e618f2a82d9
child 21352 0372edc9a995
equal deleted inserted replaced
20198:816b9f30f5b1 20199:0a9d1d17b076
   622      * @return previous value, or null if none
   622      * @return previous value, or null if none
   623      */
   623      */
   624     final V putVal(int hash, K key, V value, boolean onlyIfAbsent,
   624     final V putVal(int hash, K key, V value, boolean onlyIfAbsent,
   625                    boolean evict) {
   625                    boolean evict) {
   626         Node<K,V>[] tab; Node<K,V> p; int n, i;
   626         Node<K,V>[] tab; Node<K,V> p; int n, i;
   627         if (size > threshold || (tab = table) == null ||
   627         if ((tab = table) == null || (n = tab.length) == 0)
   628             (n = tab.length) == 0)
       
   629             n = (tab = resize()).length;
   628             n = (tab = resize()).length;
   630         if ((p = tab[i = (n - 1) & hash]) == null)
   629         if ((p = tab[i = (n - 1) & hash]) == null)
   631             tab[i] = newNode(hash, key, value, null);
   630             tab[i] = newNode(hash, key, value, null);
   632         else {
   631         else {
   633             Node<K,V> e; K k;
   632             Node<K,V> e; K k;
   657                 afterNodeAccess(e);
   656                 afterNodeAccess(e);
   658                 return oldValue;
   657                 return oldValue;
   659             }
   658             }
   660         }
   659         }
   661         ++modCount;
   660         ++modCount;
   662         ++size;
   661         if (++size > threshold)
       
   662             resize();
   663         afterNodeInsertion(evict);
   663         afterNodeInsertion(evict);
   664         return null;
   664         return null;
   665     }
   665     }
   666 
   666 
   667     /**
   667     /**