text: public synchronized V put(K key, V value) {if (value == null) {throw new NullPointerException();}int hash = secondaryHash(key.hashCode());HashtableEntry<K, V>[] tab = table;int index = hash & (tab.length - 1);HashtableEntry<K, V> first = tab[index];for (HashtableEntry<K, V> e = first; e != null; e = e.next) {if (e.hash == hash && key.equals(e.key)) {V oldValue = e.value;e.value = value;return oldValue;}}modCount++;if (size++ > threshold) {rehash();  tab = doubleCapacity();index = hash & (tab.length - 1);first = tab[index];}tab[index] = new HashtableEntry<K, V>(key, value, hash, first);return null;}