HashMap实现原理

17 阅读1分钟

底层使用hash表数据结构,即数组+(链表或红黑树)

添加数据时,计算key的值确定元素在数组中的下标

  • key相同则替换
  • key不相同(哈希冲突)存在链表或红黑树

获取数据通过key的hash计算数组下标获取元素

HashMap的JDK1.7和JDK1.8有什么区别

JDK1.8之前采用的拉链法,数组+链表

JDK1.8之后采用数组+链表+红黑树,链表长度大于8且数组长度大于64则会从链表转化为红黑树