HashMap 的底层结构,HashMap 的结构,put 和 get 的时候发生了什么,HashMap 的查找性能最好和最坏是多少,为什么,HashMap 的 hash 算法和扩容机制的原因,HashMap 与 HashTable 的区别,HashMap 中用到了红黑树,简述它的原理,它是平衡的吗?,hashmap 是否线程安全呢,ConcurrentHashMap 知道吗,ConcurrentHashMap 在 jdk1.8 之后的优化,ConCurrentHashMap 原理,HashMap 如何实现快速查找,LinkedHashMap 和 HashMap 的区别,还有实现原理,HashMap 相关
底层结构与整体结构
HashMap 的底层结构在 JDK1.8 之后是数组 + 链表 + 红黑树的形式。它以数组作为基础存储结构,每个数组元素被称为桶(bucket),当有数据要存储时,通过对键(key)进行哈希运算得到对应的桶的位置。如果不同的键计算出的桶位置相同,就会在该桶处形成链表,将新元素添加到链表中。而当链表的长度达到一定阈值(默认为 8)且数组长度达到一定条件时,链表会转换为红黑树结构,以此优化查找性能。