浅述Hashmap的底层原理

127 阅读1分钟

首先Hashmap分为两个时期:1.8之前和1.8之后。

  • 1.8之前:数组+链表
  • 1.8之后:数组+链表/数组+红黑树

图片.png

  • 底层原理:上层结构就是一个长度为16的数值,通过hashcode的值找到对应的数组上的位置进行存储。
  • 对于大量的数据,hashcode的值一定会有相同,那么相同的hashcode值就挂载在上一个数据上。(此挂载不是物理挂载,是一个逻辑挂载)。
  • 为了方便查找,每个数据包含3个部分:key, value, next。其中next中存放的就是挂载对象的地址信息,随着持续挂载便形成了链表。
  • 链表的长度是有限制的,当长度超过8以后,变转化为红黑树。红黑树节点小于6的时候又退化为链表