HashMap源码分析与面试题
拆分后的每个Segment都相当于原先的一个HashMap(double-hash设计).并且Segment在初始化后无法扩容,每个Segment对应的哈希表可以扩容,扩容只扩容相应Segment下面的哈希表。创建一个新的数组,其容量为旧数组的两倍,并重新计算旧数组中结点的存储位置。想正确的获取HashMap中集合的元素,判定key是否相同,要同时重写的hashCode方法和equals方法。底层使用哈希表,也就是数组+链表,当链表长度超过8个时会转化为红黑树,以实现查找的时间复杂度为log n。
原创
2020-02-06 13:29:26 ·
346 阅读 ·
1 评论