HashMap知识点简记

HashMap知识点

  1. hashmap的默认初始长度是16
  2. hashmap的数据结构包括 初始数组、链表、红黑数
  3. 数组容量为2的整数倍:提高运算速度、增加散列度,降低冲突、减少内存碎片
  4. 插入位置:pos=key%size计算位置
  5. hash函数与pos定位:hashchode的高16位与低16位进行异或求模,增加散列度,降低冲突
  6. 插入冲突:通过单链表解决冲突,如果链表过长(TREEIFY_THRESHOLD=8),进行单链表和红黑树的转换以提高查询速度
  7. 红黑树最小最小容量64
  8. 新节点插入链表时,使用的是“头插法”(假定后插入的数据被查找的可能性更大)
  9. 扩容:达到容量的0.75倍时进行X2扩容
  10. 扩容后数据排布:要么原位置、要么原下标+原容量的位置
  11. 序列化:只存储数组的容量、实际节点数量和各个节点的key、value值

后续学习的知识点

  • 位移运算、取模、高位与
  • 红黑树

Java 8系列之重新认识HashMap
剖析HashMap源码
什么是HashMap?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章