HashMap源码分析
1. 分析准备
数组
1.1 Hash
hash也叫散列,音译为哈希,意思是将任意长度的输入通过散列算法转换成相同长度的输出,这种输出就叫散列值(哈希值),不同的输入可能会造成相同的输出,因此不能通过散列值来反推出输入内容。
1.2 数组
用一组连续的存储空间来存储数据,存储相同类型的数据,有索引,查询快,增删慢,容量固定。
###1.3 链表
一组不连续的区域,一个区域的指针指向下一个区域以此类推,查找慢,增删快。
###1.4 哈希表
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
**也可以通俗理解为数组和链表的结合, 即一个一维数组,但数组的每个元素都是一个链表**
###1.5二叉树
是树结构的一种,但是每一个节点只有两个分支,且有左右之分
![image](https://img2020.cnblogs.com/blog/2483822/202108/2483822-20210813153529903-1927582756.png)
###1.6红黑树
自平衡的二叉树HashMap源码分析