HashMap的remove()方法详解

HashMap的remove()方法

HashMap中有两个remove()方法,一般常用的是第一个
HashMap的remove()方法详解_第1张图片
以key为参数的remove方法 输入key–>key存在就删除

public V remove(Object key) {
       Node 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()方法
看方法前我们先了解一下这几个变量
HashMap的remove()方法详解_第2张图片
以及出现在removeNode()里的这些变量
tab:引用当前HashMap中的散列表
p:当前node元素
n:表示散列表的数组长度
index:寻址结果 桶位
HashMap的remove()方法详解_第3张图片

以下是removeNode()源码

HashMap的remove()方法详解_第4张图片
HashMap的remove()方法详解_第5张图片
HashMap的remove()方法详解_第6张图片
HashMap的remove()方法详解_第7张图片
HashMap的remove()部分 over
HashMap的remove()方法详解_第8张图片

你可能感兴趣的:(HashMap源码,java,hashmap,哈希,hash,hashcode)