hashmap底层原理

编程中 产生的疑问

hashmap底层原理_第1张图片
因为 在put进hm时,是用hash算法 把值user2对象 计算出hashcode 来放入数组中对应位置;
即便是你改变了user2的属性值,user2的hashcode自始至终没有改变;
当从map进行getValue时 是比较hashcode拿到;
值存放的其实是 user2的引用。
【】
hashmap底层原理_第2张图片

简单说下添加 键值对put(key,value) 的过程:

1,判断键值对数组tab[]是否为空或为null,否则以默认大小resize();
2,根据键值key计算hash值得到插入的数组索引i,如果tab[i]==null,直接新建节点添加,否则转入3
3,判断当前数组中处理hash冲突的方式为链表还是红黑树(check第一个节点类型即可),分别处理

你可能感兴趣的:(hashmap底层原理)