HashMap、ConcurrentHashMap数据结构、底层原理、源码分析

  • HashMap

数据结构

JDK1.7 

HashMap由数组+链表组成,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。

JDK1.8

HashMap由数组+链表/红黑树组成,当链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间。

转为红黑树后,链表的结构仍然会存在,通过next属性维持,红黑树节点在进行操作时都会维护链表的结构

底层原理

 怎么实现存取?

  • put
  • get
  • null key

源码分析

 

  • ConcurrentHashMap

数据结构

底层原理

源码分析

猜你喜欢

转载自www.cnblogs.com/scorpio-cat/p/12680487.html