HashMap源码解析
1、首先,我看下hashmap的类定义,发现其源于这些接口Map, Cloneable, Serializable
2、之后我们看下put方法的实现
3、方法一进来就是判断table,看一下table的定义
4、之后根据key获得哈希值,在获得table数组的下标,获得Entry对象,我们看下entry的定义
5、可以发现这是一个链表,然后程序去遍历这个链表,如果发现链表中存在值,就更新链表数据,结束
6、如果链表中没有对应的数据,那就新增一条数据
7、我们看下addEntry方法,如果存储空间不足,将table数组扩容
8、最后我们看下createEntry方法,取得原数组下的链表,把新值放在链表头,把新的链表放到数组下,程序结束
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:65
阅读量:93
阅读量:57
阅读量:78
阅读量:86