HashMap的put(key,val)和get(key)过程是什么?

提问者:帅平 问题分类:面试刷题
HashMap的put(key,val)和get(key)过程是什么?
1 个回答
刂阝余己忄已
刂阝余己忄已
存储对象时,我们将K/V传给put方法时,它调用hashCode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量(超过Load Facotr则resize为原来的2倍)。
获取对象时,我们将K传给get,它调用hashCode计算hash从而得到bucket位置,并进一步调用equals()方法确定键值对。如果发生碰撞的时候,Hashmap通过链表将产生碰撞冲突的元素组织起来,在Java 8中,如果一个bucket中碰撞冲突的元素超过某个限制(默认是8),则使用红黑树来替换链表,从而提高速度。
发布于:4周前 (04-23) IP属地:四川省
我来回答