HashMap超详细源码解析
1、HashMap概念
HashMap实现了Map接口,是一种使用键值对存储数据的数据结构。
HashMap允许null作为键和值。
HashMap不保证元素的顺序,特别是不保证顺序恒定。
HashMap是基于哈希表实现的数据结构,具有快速的插入、删除和查找操作。
HashMap使用了一个数组来实现哈希表,每个位置被称为桶(bucket)。
每个桶又是一个链表的头节点,用于处理哈希冲突(即两个不同的键哈希值相同)的情况。
当链表长度超过阈值(默认为8)时,链表将转化为红黑树,以提高查找效率。
当链表长度回落到阈值以下时,红黑树将转化为链表。
JDK8才引入的红黑树,JDK8之前底层结构只有数