聊聊HashMap

2018-03-14  本文已影响0人  jqdywolf

HashMap

jdk1.7实现版本

数组+链表

jdk1.8实现版本

数组+链表+红黑树

ConcurrentHashMap

上面说hashmap并不是线程安全的,ConcurrentHashMap就是用来解决线程安全的。

jdk1.7实现版本

数组+segment+链表
同步:segment+ReentrantLock

如图所示,map由1.7中的两级被分为了三级。首先hashmap中存的是segment数组。每个segment数组中存放一个实体数组,每个数组中是一个链表结构。

jdk1.8实现版本

数组+链表+红黑树
同步:CAS+synchronized

目的就是为了提高了1.7效率。
如何提高?

上一篇 下一篇

猜你喜欢

热点阅读