HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地

HashMap的核心方法就是 : put()和resize()

HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
HashMap面试面的比较多的部分就是hashmap的put方法了

不多bb看源码~

通过源码我们可以发现,put方法底层调用了一个putval方法,也就是说put方法中真正做事的是putval()方法

HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
通过源码我们很清晰的可以看到第一个参数调用了hash()方法,这个方法暗藏什么玄机?

HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
其实很简单

HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地

这个putval方法有五个参数

int hash 经过hash(Object key)扰动过后的hash值
K key 不解释
V value 不解释
boolean onlyIfAbsent 判断元素是否存在 默认是false
boolean evict 默认true
HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
为了方便讲解我把源码放在word中进行注释说明

HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地
HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地

HashMap的核心方法put(K key,V value)方法源码详解,10分钟看完put方法源码知天知地