在这里先简单介绍一下基础的数据结构
1.数组
数组的本质就是一块连续的内存,存放着具有相同类型的数据。
优点:可以通过数组的下标,直接进行访问;
缺点:插入节点困难;
2.单链表
单链表一般是由一个data域和next指针域构成一个节点,next指针指向下一个节点。其中Head指向头节点,Tail指向尾节点。插入时只需修改next指针的指向即可。
优点:插入和删除数据方便;
缺点:查询效率低;
HshMap的数据结构包括了初始数组、链表、红黑树(JDK1.8以后增加)
1.插入数据的时候使用 pos=keyW%size来进行插入数据
2.当两个或两个以上的key的key相同且key值不同的时候(发生冲突),就会挂在数组初始化后的链表后
3.对于JDK1.8以上的版本,当单个链表的长度超过8时,就会转换成红黑树以提高效率