hashmap put方法代码
时间: 2024-01-30 14:03:53 浏览: 64
好的,以下是Java中HashMap的put方法的代码:
```java
public V put(K key, V value) {
if (table == EMPTY_TABLE) {
inflateTable(threshold);
}
if (key == null) {
return putForNullKey(value);
}
int hash = hash(key);
int i = indexFor(hash, table.length);
for (Entry<K,V> e = table[i]; e != null; e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
V oldValue = e.value;
e.value = value;
e.recordAccess(this);
return oldValue;
}
}
modCount++;
addEntry(hash, key, value, i);
return null;
}
```
其中,`hash()`方法是根据key计算出该对象的哈希值,`indexFor()`方法是根据哈希值和table的长度计算出该元素在table数组中的下标,`addEntry()`方法是将新元素添加到table数组中。在put方法中,首先判断table数组是否为空,如果是则进行table数组的初始化操作,然后判断key是否为null,如果是则调用putForNullKey方法进行处理,如果不是,则遍历对应的链表,如果找到了相同的key,则更新对应的value值,否则将新元素添加到链表中。
阅读全文