说一下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 时,使用红黑树。(解决链表查询慢的问题)