其实我们可以理解ConcurrentHashMap是HashMap的升级版,熟悉HashMap都知道其性能已经很拉菲了,但HashMap因不是线程安全的带来了高并发问题,因此就有了ConcurrentHashMap。
在平时的工作或面试中,经常需要考虑容器的选择问题,其中“map和hash_map的差异点”出现的概率最高。那么,我们从底层原理上看看具体都有哪些区别和联系。目录为了方便大家阅读文章,我们先介绍一下文章结构,大家可以直接跳到感兴趣的位置进行阅读。
众所周知HashMap是工作和面试中最常遇到的数据类型,但很多人对HashMap的知识止步于会用的程度,对它的底层实现原理一知半解,了解过很多HashMap的知识点,却都是散乱不成体系,今天一灯带你一块深入浅出的剖析HashMap底层实现原理。
前面我们讲了链表这种数据结构,相比于数组的好处是对元素在增删场景效率特别高,弥补了数组新增和删除效率极低的缺陷。同样链表也存在自己致命的缺陷,那就是查询和修改效率太低。其实数组和链表这两种数据结构刚好是互补的,只是前者的优点是后者的缺点,而后者的优点是前者的缺点。