HashMap的remove()方法
HashMap中有两个remove()方法,一般常用的是第一个
以key为参数的remove方法 输入key–>key存在就删除
public V remove(Object key) {
Node<K,V> e;
return (e = removeNode(hash(key), key, null, false, true))
== null ? null : e.value;
}
以key+value为参数的remove方法 必须key和value都正确才删除
public boolean remove(Object key, Object value) {
return removeNode(hash(key), key, value, true, true) != null;
}
但是两个方法都是在调用removeNode()方法
看方法前我们先了解一下这几个变量
以及出现在removeNode()里的这些变量
tab:引用当前HashMap中的散列表
p:当前node元素
n:表示散列表的数组长度
index:寻址结果 桶位
以下是removeNode()源码
HashMap的remove()部分 over