023 说一下HashMap的实现原理?

说一下HashMap的实现原理?

答:

HashMap 基于 Hash 算法实现,通过 put(key,value) 存储,get(key) 来获取 value

当传入 key 时,HashMap 会根据 key,调用 hash(Object key) 方法,计算出 hash 值,根据 hash 值将 value 保存在 Node 对象里,Node 对象保存在数组里

当计算出的 hash 值相同时,称之为 hash 冲突,HashMap的做法是,用链表和红黑树存储相同hash值的value 。

当 hash 冲突的个数:小于等于 8 使用链表;大于 8 时,使用红黑树。(解决链表查询慢的问题)

参考博文:https://www.baidu.com/link?url=UhLS2ywoJ79ZCtp917Cy7r6ZzouBAliqNTNB2GyZUYw9MvYy3H3kHjnUzifeP4Fb7kguRTNB9UqoZrcVaxFR-MfsBdUi9MiJgixNNN32aBq&wd=&eqid=f5f45c8d00a64f27000000035e93b41c

上一篇:blender 2.8 [学习笔记-023] 编辑模式-倒角


下一篇:Vue模板,数据和指令