HashMap的实现原理
HashMap是基于Hash算法实现的,我们通过put(key,value)存储,get(key)获取。
当传入key时,HashMap会根据key.hashCode()计算出hash值,根据hash值将Value保存在bucket里。当计算出的hash值相同时,就将其称之为hash冲突。
HashMap的做法是用链表或者红黑树存储相同hash值的value,当冲突的个数比较少的时候,使用链表,当链表的长度超过8的时候,HashMap会先去查看数组的大小,如果数组没有达到最大值64,那么它会先去对数组进行扩容,而如果数组已经到达最大值的时候,它会去把链表转化成红黑树。