社区
Java SE
帖子详情
求助!java1.8中ConcurrentHashMap中的put方法用到了树,而get方法却用的链表获取呢?
plutoppppp
2020-07-22 11:27:22
RT!RT!RT!RT!RT!RT!RT!RT!RT!RT!
...全文
131
2
打赏
收藏
求助!java1.8中ConcurrentHashMap中的put方法用到了树,而get方法却用的链表获取呢?
RT!RT!RT!RT!RT!RT!RT!RT!RT!RT!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
plutoppppp
2020-07-22
打赏
举报
回复
结帖了,是我逗逼了,get方法中有个find函数,TreeNode重写了这个方法!!!!尴尬!!!!!!!!!!!
plutoppppp
2020-07-22
打赏
举报
回复
get方法,直接取得next进行比较,用的链表结构:
put方法,有转树的过程:
一文让你彻底理解
Java
HashMap和
ConcurrentHashMap
Map这样的KeyValue在软件开发
中
是非常经典的结构,常用于在内存
中
存放数据。本篇主要想讨论
ConcurrentHashMap
这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的
ConcurrentHashMap
。 众所周知HashMap底层是基于数组+
链表
组成的,不过在jdk1.7和
1.8
中
具体实现稍有不同。
关于JDK
1.8
下的
ConcurrentHashMap
的put
方法
和get
方法
源码,以及红黑
树
的插入详解
1. 首先第一步便是判断`key`和`value`是否存在为空的情况,如果存在直接抛出空指针异常(`NullPointerException`)快速失败。 2.
获取
`key`的`hashCode`,通过`key`的`hashCode`右移`16`位后的值与原`key`的`hashCode`进行`或`运算,并且和`HASH_BITS = 0x7fffffff`进行`与`运算得到最终的`hashCode`值。这样做的目的是为了减少`hash`碰撞。 3. `for (Node[] tab =
JDK
1.8
的
ConcurrentHashMap
的put、get 工作原理
JDK
1.8
的
ConcurrentHashMap
put总结: 如果没有初始化就先调用initTable()
方法
来进行初始化过程 如果没有hash冲突就直接CAS插入 如果还在进行扩容操作就先进行扩容 如果存在hash冲突,就加锁来保证线程安全,这里有两种情况,一种是
链表
形式就直接遍历到尾端插入,一种是红黑
树
就按照红黑
树
结构插入, 如果Hash冲突时会形成Node
链表
,在
链表
长度超过8,Node数组超过64时会将
链表
结构转换为红黑
树
的结构,break再一次进入循环 如果添加成功就调用addCo
关于jdk
1.8
中
ConcurrentHashMap
1.前言
Java
JDK升级到
1.8
后有些集合类的实现有了变化, 其
中
ConcurrentHashMap
就有进行结构上的大调整。 jdk1.6、1.7实现的我不会想了解去百度吧 2. 重要概念 想要了解
ConcurrentHashMap
你至少要对HashMap有一定的了解吧? HashMap(
1.8
)和
ConcurrentHashMap
(
1.8
) 底层都是hash表+
链表
+红黑
树
如果对红黑
树
不了解的可以查看https://blog.csdn.net/A980719/article/details/12
关于jdk
1.8
中
ConcurrentHashMap
的方方面面
前言
Java
JDK升级到
1.8
后有些集合类的实现有了变化,其
中
ConcurrentHashMap
就有进行结构上的大调整。jdk1.6、1.7实现的共同点主要是通过采用分段锁Segment减少热点域来提高并发效率,
1.8
版本的实现有哪些变化呢? 重要概念 在正式研究前,我们需要先知道几个重要参数,提前说明其值所代表的意义以便更好的讲解源码实现。 table 所有数据都存在tab...
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章