HashMap原理

定位桶算法:

int hash = key == null ? 0 : (h = key.hashCode()) ^ (h >>> 16);

index = (n-1) & hash


扩容:

if ((newCap = oldCap <<1)  < MAXIMUM_CAPACITY && oldCap >=DEFAULT_INITIAL_CAPACITY) {

    newThr = oldThr <<1;

}

HashMap默认配置

初始大小DEFAULT_INITIAL_CAPACITY = 16

最大容量MAXIMUM_CAPACITY = 1 << 30

默认负载银子DEFAULT_LOAD_FACTOR = 0.75f

冲突链表树化阈值TREEIFY_THRESHOLD=8

冲突非树化阈值UNTREEIFY_THRESHOLD=6

最小树化容量MIN_TREEIFY_CAPACITY=64

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。